我试图弄清楚如何在字符串中获取子字符串的范围。范围是指子字符串的开始位置和结束位置。因此,如果我有以下字符串示例:
NSString *testString=@"hello everyone how are you doing today?Thank you!";
如果我正在寻找的子字符串(在这个例子中)是“你好吗”,那么开始范围应该是 15,结束范围应该是 31。
(15, 31)
谁能告诉我如何以编程方式做到这一点?谢谢!
我试图弄清楚如何在字符串中获取子字符串的范围。范围是指子字符串的开始位置和结束位置。因此,如果我有以下字符串示例:
NSString *testString=@"hello everyone how are you doing today?Thank you!";
如果我正在寻找的子字符串(在这个例子中)是“你好吗”,那么开始范围应该是 15,结束范围应该是 31。
(15, 31)
谁能告诉我如何以编程方式做到这一点?谢谢!
您可以使用该方法-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);
}
这很简单。你说你想搜索字符串“大家好,你今天过得怎么样?谢谢!” 对于“你好吗”。
你说你需要第一个字符和最后一个字符的位置。
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;
所以现在你有了最后两个变量。
使用以下的内置方法部分NSString
:
[testString rangeOfString:@"hello how are you doing"]