在某OC字符串中,搜索指定的某字符串:-rangeOfString:

范例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/

点赞(44) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部