一、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。