Отфильтруйте строку с помощью NSScanner и удалите пробел после числового символа
Я пытался отфильтровать строку с помощью следующего кода:
//the String with the original text
NSString *unfilteredString = @"( A1 )";
//initialize a string that will hold the result
NSMutableString *resultString = [NSMutableString stringWithCapacity:unfilteredString.length];
NSScanner *scanner = [NSScanner scannerWithString:unfilteredString];
NSCharacterSet *allowedChars = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
while ([scanner isAtEnd] == NO) {
NSString *buffer;
if ([scanner scanCharactersFromSet:allowedChars intoString:&buffer]) {
[resultString appendString:buffer];
}
else {
[scanner setScanLocation:([scanner scanLocation] + 1)];
}
}
NSLog (@"Result: %@", resultString);
что дает мне результат:
Результат: (А)
Как видите, он убрал не только номер 1, но и конечный пробел.
Любые намеки, пожалуйста?
1 ответ
Решение
Я не очень много использовал NSScanner, но я думаю, что ваша проблема здесь в том, что по умолчанию NSScanner пропускает пробелы и символы новой строки при сканировании. Ваш код будет работать, если вы добавите эту строку после создания экземпляра объекта сканера:
[scanner setCharactersToBeSkipped:nil];