NSString поиск всего текста для другой строки - PullRequest
1 голос
/ 27 сентября 2011

Я хотел бы найти строку NSString в другой строке NSString, чтобы результат был найден, даже если второй не начинается с первого, например:

Например: у меня есть строка поиска«улица».Я просматриваю следующие записи, чтобы узнать, содержит ли какая-либо из нижеприведенных строк эту строку поиска, и все они должны возвращать хороший результат, поскольку все они имеют "st".

Restaurant

stable

Кирстен

В данный момент я делаю следующее:

NSComparisonResult result = [selectedString compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];

Это работает только для "stable" в приведенном выше примере, потому что оно начинается с "st"и терпит неудачу для другого 2. Как я могу изменить этот поиск, чтобы он возвращал нормально для всех 3?

Спасибо !!!

Ответы [ 3 ]

11 голосов
/ 27 сентября 2011

Почему бы не сначала Google?

Строка содержит строку в target-c

NSString *string = @"hello bla bla";
if ([string rangeOfString:@"bla"].location == NSNotFound) {
  NSLog(@"string does not contain bla");
} else {
  NSLog(@"string contains bla!");
}
1 голос
/ 22 июля 2014

Я знаю, что это старая ветка, которая может кому-то помочь.

Метод - rangeOfString:options:range: позволит выполнять поиск в строке без учета регистра и заменять буквы типа 'ö' на 'o' в вашем поиске.,

NSString *string = @"Hello Bla Bla";
NSString *searchText = @"bla";
NSUInteger searchOptions = NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch;
NSRange searchRange = NSMakeRange(0, string.length);
NSRange foundRange = [string rangeOfString:searchText options:searchOptions range:searchRange];
if (foundRange.length > 0) {
    NSLog(@"Text Found.");
}

Дополнительные параметры сравнения Ссылка на класс NSString

Документацию по методу - rangeOfString:options:range: можно найти в Ссылка на класс NSString

1 голос
/ 27 сентября 2011

Сравнение используется для тестирования меньше / равно / больше чем.Вместо этого вы должны использовать -rangeOfString: или один из его родственных методов, например -rangeOfString:options:range:locale:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...