范例1:
NSString *str = @"Hello, world!";
NSString *searchStr = @"world";
NSRange range = [str rangeOfString:searchStr];
if (range.location != NSNotFound) {
NSLog(@"'%@' is found at index %ld", searchStr, range.location);
} else {
NSLog(@"'%@' is not found", searchStr);
}
这个例子中,我们定义了一个字符串str,然后使用rangeOfString方法来搜索指定的字符串searchStr。如果搜索到了,就会返回一个NSRange结构,包含搜索字符串在原字符串中的位置和长度。如果没有找到,range的location属性会被设为NSNotFound。
范例2:
NSString *str = @"I have a cat, a dog, and a bird.";
NSString *searchStr = @"cat";
NSRange range = [str rangeOfString:searchStr options:NSCaseInsensitiveSearch];
if (range.location != NSNotFound) {
NSLog(@"'%@' is found at index %ld", searchStr, range.location);
} else {
NSLog(@"'%@' is not found", searchStr);
}
在这个例子中,我们使用了options参数来指定搜索时忽略大小写。这样,在搜索字符串"cat"时,不论原字符串中的"cat"是大写还是小写,都能够找到并返回正确的位置。
如果你需要返回所有匹配的位置,你可以使用循环来搜索,每次搜索处理完当前位置后,将range.location加上range.length,继续搜索下一个位置,直到搜索到NSNotFound为止。
NSString *str = @"Hello, it's a beautiful day. Hello, it's nice to see you.";
NSString *searchStr = @"Hello";
NSInteger searchStartIndex = 0;
while (searchStartIndex < str.length) {
NSRange range = [str rangeOfString:searchStr options:NSCaseInsensitiveSearch range:NSMakeRange(searchStartIndex, str.length - searchStartIndex)];
if (range.location != NSNotFound) {
NSLog(@"'%@' is found at index %ld", searchStr, range.location);
searchStartIndex = range.location + range.length;
} else {
break;
}
}
这个例子中,我们定义了一个循环来搜索所有符合条件的位置。每次搜索后,将searchStartIndex设为当前位置加上长度,然后继续搜索下一个位置,直到搜索到NSNotFound为止。在输出中,我们使用了range.location来获取每次搜索到的位置。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复