您的位置:

iOS字符串截取

一、substring方法的使用

1、substring(截取字符串)方法可以通过起始位置和长度来截取字符串。

NSString *str = @"iOS字符串截取";
NSString *subStr = [str substringFromIndex:3];//从索引3开始截取到字符串末尾
NSString *subStr1 = [str substringToIndex:3];//从字符串开头截取到索引3
NSString *subStr2 = [str substringWithRange:NSMakeRange(3, 4)];//从索引3开始截取长度为4的字符串
NSLog(@"subStr:%@",subStr);
NSLog(@"subStr:%@",subStr1);
NSLog(@"subStr:%@",subStr2);

2、需要注意的是,如果起始位置超出字符串范围,则会发生异常。

//起始位置超出字符串范围
NSString *subStr3 = [str substringFromIndex:20];

二、NSString的追加方法

1、在原字符串后面追加字符串,可使用stringByAppendingString方法。

NSString *str = @"iOS字符串截取";
NSString *appendStr = @"的几种方法";
NSString *newStr = [str stringByAppendingString:appendStr];
NSLog(@"newStr:%@",newStr);

2、如果需要在原字符串的某个位置插入字符串,可使用NSString插入方法。

NSMutableString *mutableStr = [NSMutableString stringWithString:@"iOS字符串截取"];
[mutableStr insertString:@"的几种方法" atIndex:3];
NSLog(@"newMutableStr:%@",mutableStr);

3、需要注意的是,如果插入位置超出字符串范围,则会发生异常。

//插入位置超出字符串范围
[mutableStr insertString:@"的几种方法" atIndex:20];

三、NSCharacterSet的使用

1、如果需要去掉字符串中的某些字符,可使用NSCharacterSet。

NSString *str = @"iOS##字%%符截\ta\b取";
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"\t\n\r #@$%^&()_+={}[]|\:;\"'<>,.?/~`"];
NSString *newStr = [[str componentsSeparatedByCharactersInSet:set] componentsJoinedByString:@""];
NSLog(@"newStr:%@",newStr);

2、其中,NSCharacterSet的characterSetWithCharactersInString方法,可以将字符串转为字符集。componentsSeparatedByCharactersInSet方法可以将字符串按照字符集分割成数组,而componentsJoinedByString方法可以将数组拼接成字符串。

四、正则表达式的使用

1、如果需要根据特定规则截取字符串,可使用正则表达式。

NSString *str = @"i1o2S3字符串截取";
NSString *pattern = @"\\d";//表示匹配数字
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *resultArray = [regex matchesInString:str options:0 range:NSMakeRange(0, str.length)];
for(NSTextCheckingResult *result in resultArray){
    NSString *tempStr = [str substringWithRange:result.range];
    NSLog(@"tempStr:%@",tempStr);
}

2、其中,NSRegularExpression的initWithPattern方法可以将字符串转为正则表达式。matchesInString方法可以根据正则表达式匹配字符串,返回NSTextCheckingResult的数组。需要注意的是,一定要在处理完NSRegularExpression后,判断是否为nil。