Позиция подстроки в NSString

Как я могу получить позицию/индекс подстроки в NSString?

Я нахожу местоположение следующим образом.

NSRange range = [string rangeOfString:searchKeyword];
NSLog (@"match found at index:%u", range.location);

Это возвращает index:2147483647, когда searchKeyword является подстрокой внутри string.

Как я могу получить значение индекса, например 20 или 5?

Ответы

Ответ 1

2147483647 - это то же самое, что и NSNotFound, что означает, что искомая строка (searchKeyword) не найдена.

NSRange range = [string rangeOfString:searchKeyword];
if (range.location == NSNotFound) {
    NSLog(@"string was not found");
} else {
    NSLog(@"position %lu", (unsigned long)range.location);
}

Ответ 2

NSString *searchKeyword = @"your string";

NSRange rangeOfYourString = [string rangeOfString:searchKeyword];

if(rangeOfYourString.location == NSNotFound)
{
     // error condition — the text searchKeyword wasn't in 'string'
}
else{
     NSLog(@"range position %lu", rangeOfYourString.location);
}

NSString *subString = [string substringToIndex:rangeOfYourString.location];

может это поможет вам....