Я не уверен, что вы понимаете, что делает код в вашем примере.Этот код выполняет следующие действия:
- создает набор всех буквенно-цифровых символов
- создает инверсию этого набора (т. Е. Все не алфавитно-цифровые символы)
- разбивает вашисходная строка в массив подстрок, разделенных любыми символами в не алфавитно-цифровом наборе символов
- собрать подстроки в этом массиве обратно в одну строку как ваш конечный результат
Окончательныйрезультат - ваша исходная строка за вычетом любых не буквенно-цифровых символов.Так что, если ваша оригинальная searchString была такой:
This isn't the one
Тогда ваша safeSearchString будет:
Thisisnttheone
Я думаю, что это, вероятно, не то, что вы хотите.Я не знаю точно, что вы делаете, но я могу дать несколько идей, которые могут помочь:
Если вы хотите удалить НЕКОТОРЫЕ запрещенные символы из вашей строки вместо всех не алфавитно-цифровых, выможет создать пользовательский набор символов следующим образом:
// remove only apostrophe and dollar sign characters
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@"'$"];
NSString *safeSearchString = [[searchString componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@""];
Если вы хотите удалить все не алфавитно-цифровые символы, но оставить пробелы:
// remove any characters except alphanumeric and space
NSMutableCharacterSet *charSet = [NSMutableCharacterSet characterSetWithCharactersInString@" "];
[charset formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
NSString *safeSearchString = [[searchString componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@""];
Вы также можете удалить небуквенно-цифровые / непробельные символы, а затем разделяются на массив отдельных слов:
NSString * searchString = @"This isn't the one"; // example
// remove any characters except alphanumeric and space and break into an array on word boundaries
NSMutableCharacterSet *charSet = [NSMutableCharacterSet characterSetWithCharactersInString@" "];
[charset formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
NSString *safeSearchString = [[searchString componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@""];
NSArray *safeSearchWords = [safeSearchString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSString *word;
for (word in safeSearchWords) {
NSLog(@"%@",word);
}
// This
// isnt
// the
// one