查找字符串的子字符串范围

时间:2013-06-08 10:20:19

标签: ios objective-c

我试图弄清楚如何在字符串中获取一系列子字符串。按范围我的意思是子串开始的位置和结束的位置。所以,如果我有以下字符串示例:

NSString *testString=@"hello everyone how are you doing today?Thank you!";

如果我要查找的子字符串(在这个例子中)是“你好吗”,那么开始范围应为15,结束范围应为31.

  (15, 31)

有谁能告诉我如何以编程方式执行此操作?谢谢!

3 个答案:

答案 0 :(得分:47)

您可以使用方法-rangeOfString查找字符串中子字符串的位置。然后,您可以将范围的位置与NSNotFound进行比较,以查看字符串是否确实包含子字符串。

NSRange range = [testString rangeOfString:@"how are you doing"];

if (range.location == NSNotFound) {
    NSLog(@"The string (testString) does not contain 'how are you doing' as a substring");
}
else {
    NSLog(@"Found the range of the substring at (%d, %d)", range.location, range.location + range.length);        
}

答案 1 :(得分:10)

非常直截了当。你说你想搜索字符串“大家好,你今天好吗?谢谢!”因为“你好吗?”。

你说你需要第一个角色和最后一个角色的位置。

NSString *testString=@"hello everyone how are you doing today?Thank you!";

NSRange range = [testString rangeOfString:@"how are you doing"];

NSUInteger firstCharacterPosition = range.location;
NSUInteger lastCharacterPosition = range.location + range.length;

所以现在你有了最后两个变量。

答案 2 :(得分:0)