如何从字符串中删除所有不必要的空格?

Dou*_*ith 0 objective-c nsstring

我从网站上提取一些文本并将其保存在NSString中,然后将其显示给用户,但我希望它在一个清晰的行中,一个单词在另一个单词后面,绝对零换行或不必要的空格或制表符.

拍摄以下图片:

在此输入图像描述

身体里面有我不想要的所有间距.我确实想要单词之间的空格(所以我想要"这是一个句子",而不是"Thisisasentence")但所有这些间距实际上使输出变得难看.我怎么摆脱它?

Mon*_*olo 5

正则表达式在这里有很多帮助:

NSString *tooManySpaces = @"   Too\tmany    spaces \n and on   several   \nlines, at that";
NSString *cleaned = [tooManySpaces stringByReplacingOccurrencesOfString: @"\\s+"
                                                             withString: @" "
                                                                options: NSRegularExpressionSearch
                                                                  range: NSMakeRange(0, tooManySpaces.length)];
Run Code Online (Sandbox Code Playgroud)

\s模式覆盖空格,即空格,制表符和换行符.如果这太多了,您可以指定所需的那些,如下所示:[ \t]+覆盖空格和制表符.

为了在开头和结尾删除任何多余的空格,您还需要修剪字符串(在应用正则表达式替换之前或之后):

cleaned = [cleaned stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Run Code Online (Sandbox Code Playgroud)