概述
工作当中,很多的时候需要把一段字符串中某些符合特定条件的字符串做特殊的处理,比如
NSString *string1=@"abcdefabcdefabcdefabcdefbcd";
我想把其中 所有的“bcd”做高亮处理,这个时候,首先要把这些匹配的字符串对应的位置取出来,再利用NSMutableAttributedString做相应的高亮处理,这里就说一下如何取这些匹配字符串的NSRange。
方法一:
NSString *string1=@"abcdefabcdefabcdefabcdefbcd";
NSString *string2=@"bcd";
NSArray *array=[string1 componentsSeparatedByString:string2];
NSMutableArray *arrayOfLocation=[NSMutableArray new];
int d=0;
for (int i=0; i<array.count-1; i++) {
NSString *string=array[i];
NSNumber *number=[NSNumber numberWithInt:d+=string.length];
d+=string2.length;
[arrayOfLocation addObject:number];
}
NSLog(@"%@",arrayOfLocation);
匹配子字符串的NSRange.location存储在NSArray里,
NSRange.length
就是字符串的长度。
方法二:
NSString *str = @"abcdefabcdefabcdefabcdef";
NSString *copyStr = str;
NSMutableArray *arrayOfLocation=[NSMutableArray new];
while ([copyStr rangeOfString:@"bcd"].location != NSNotFound)
{
NSRange
range
= [copyStr rangeOfString:@"bcd"];
NSLog(@"location:%lu",(unsigned long)range.location);
[arrayOfLocation addObject:[NSNumber numberWithInteger:range.location]];
copyStr = [copyStr stringByReplacingCharactersInRange:NSMakeRange(range.location, range.length) withString:@"XXX"];
}
最后
以上就是正直百合为你收集整理的获取NSString中所有匹配子字符串的NSRange的array的全部内容,希望文章能够帮你解决获取NSString中所有匹配子字符串的NSRange的array所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复