Почему whitespaceAndNewlineCharacterSet не удаляет пробелы?
Этот код ДОЛЖЕН очистить номер телефона, но он не:
NSLog(@"%@", self.textView.text);
// Output +358 40 111 1111
NSString *s = [self.textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", s);
// Output +358 40 111 1111
Есть идеи, что не так? Любые другие способы удалить белые символы из текстовой строки (кроме сложного способа)?
2 ответа
Попробуй это
NSCharacterSet *dontWantChar = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *string = [[self.textView.text componentsSeparatedByCharactersInSet:dontWantChar] componentsJoinedByString:@""];
Документация для stringByTrimmingCharactersInSet
говорит:
Возвращает новую строку, созданную удалением с обоих концов символов получателя, содержащихся в данном наборе символов.
Другими словами, он удаляет только оскорбительные символы до и после строки любых допустимых символов. Любые "оскорбительные" символы остаются в середине строки, потому что метод обрезки не касается этой части.
В любом случае, есть несколько способов сделать то, что вы пытаетесь сделать (и ответ @Narayana тоже хорош в этом вопросе... +1 ему / ей). Мое решение было бы установить вашу строку s
чтобы быть изменяемой строкой, а затем выполните:
[s replaceOccurrencesOfString: @" " withString: @"" options: NSBackwardsSearch range: NSMakeRange( 0, [s length] )];