Подтвердить что ты не робот

Найти диапазон подстроки строки

Я пытаюсь выяснить, как получить диапазон подстроки внутри строки. Под диапазоном я подразумеваю, где начинается подстрока и где она заканчивается. Поэтому, если у меня есть следующий пример строки:

NSString *[email protected]"hello everyone how are you doing today?Thank you!";

Если подстрока, которую я ищу (в этом примере), "как вы это делаете", тогда начальный диапазон должен быть 15, а конечный диапазон должен равняться 31.

  (15, 31)

Может ли кто-нибудь сказать мне, как я могу сделать это программно? Спасибо!

4b9b3361

Ответ 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;

Итак, теперь у вас есть две последние переменные.