为什么whitespaceAndNewlineCharacterSet不会删除空格?
问题描述:
此代码应该清理的电话号码,但它并不:为什么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
任何想法有什么不好?任何其他方式从文本字符串中删除whitespacish字符(除了困难的方式)?
答
试试这个
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])];
文档,哪些文件?不习惯在记录在案的环境中工作...所以真的很感激小费! – JOM 2011-12-14 09:46:33
你会发现http://developer.apple.com/iphone是一个非常非常好的资源。我在那里连接了`stringByTrimmingCharactersInSet`的文档。 – 2011-12-14 09:47:44