此代码应该清理电话号码,但不会:
NSLog(@"%@", self.textView.text);
// Output +358 40 111 1111
NSString *s = [self.textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", s);
// Output +358 40 111 1111
任何想法有什么不对?从文本字符串除去删除白人字符的任何其他方法?
答案 0 :(得分:11)
试试这个
NSCharacterSet *dontWantChar = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *string = [[self.textView.text componentsSeparatedByCharactersInSet:dontWantChar] componentsJoinedByString:@""];
答案 1 :(得分:2)
stringByTrimmingCharactersInSet
的文档说:
返回从两端中删除的新字符串 包含在给定字符集中的接收者字符。
换句话说,它只删除字符串前后任何有效字符的违规字符。任何“违规”字符都留在字符串的中间,因为修剪方法不会触及该部分。
无论如何,有几种方法可以做你想要做的事情(@ Narayana的答案也很好,对他/她来说也是+1)。我的解决方案是将字符串s
设置为可变字符串,然后执行:
[s replaceOccurrencesOfString: @" " withString: @"" options: NSBackwardsSearch range: NSMakeRange( 0, [s length] )];