Найти диапазон подстроки строки
Я пытаюсь выяснить, как получить диапазон подстроки внутри строки. Под диапазоном я подразумеваю, где начинается подстрока и где она заканчивается. Поэтому, если у меня есть следующий пример строки:
NSString *[email protected]"hello everyone how are you doing today?Thank you!";
Если подстрока, которую я ищу (в этом примере), "как вы это делаете", тогда начальный диапазон должен быть 15, а конечный диапазон должен равняться 31.
(15, 31)
Может ли кто-нибудь сказать мне, как я могу сделать это программно? Спасибо!
Ответы
Ответ 1
Вы можете использовать метод -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);
}
Ответ 2
Это довольно прямолинейно. Вы говорите, что хотите найти строку "Привет всем, как вы поживаете сегодня? Спасибо!" для "как дела".
Вы говорите, что вам нужна позиция первого символа и последнего.
NSString *[email protected]"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;
Итак, теперь у вас есть две последние переменные.
Ответ 3
Используйте встроенную часть метода NSString
:
[testString rangeOfString:@"hello how are you doing"]
Документация:
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/uid/20000154-rangeOfString_