4

此代码应该清除电话号码,但它不会:

NSLog(@"%@", self.textView.text);
// Output +358 40 111 1111
NSString *s = [self.textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", s);
// Output +358 40 111 1111

有什么想法有什么问题吗?从文本字符串中删除白色字符的任何其他方法(硬方法除外)?

4

2 回答 2

11

试试这个

NSCharacterSet *dontWantChar = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *string = [[self.textView.text componentsSeparatedByCharactersInSet:dontWantChar] componentsJoinedByString:@""];
于 2011-12-14T09:38:55.173 回答
2

的文档stringByTrimmingCharactersInSet说:

返回通过从给定字符集中包含的接收者字符的两端删除而生成的新字符串。

换句话说,它只从字符串之前和之后删除任何有效字符中的违规字符。任何“违规”字符都会留在字符串中间,因为 trim 方法不会触及该部分。

无论如何,有几种方法可以做你想做的事情(@Narayana 的回答也很好......对他/她 +1)。我的解决方案是将您的字符串设置s为可变字符串,然后执行以下操作:

[s replaceOccurrencesOfString: @" " withString: @"" options: NSBackwardsSearch range: NSMakeRange( 0, [s length] )];
于 2011-12-14T09:37:31.137 回答