Позиция подстроки в 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];
может это поможет вам....