-->

如何删除字符串中的所有不必要的空白?(How do I remove all unnecessary

2019-10-28 14:29发布

我拉一些文本从一个网站,并把它保存在一个NSString,并显示给用户,但我想它在一个明确的界限,一个字后一个字,用绝对的零线断开或不必要的空格或制表符。

看看下面的图片:

人体中有这一切的间距,我不想要的。 我确实希望单词之间的空格(所以我想:“这是一个句子”,而不是“Thisisasentence”),但所有的间距确实使输出难看。 我该如何摆脱它?

Answer 1:

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

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)];

\s模式覆盖的空白,即空格,制表符和换行符。 如果是太多了,你可以指定那些你需要的,就像这样: [ \t]+覆盖空格和制表符。

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

cleaned = [cleaned stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];


Answer 2:

使用正则表达式替换模式@" +"与(空间空间加) @" "空格)。

换句话说,这将取代两个或多个空格的所有出现的一个空间。

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"  +" options:0 error:&error];
NSString *someString = ...; // some string with lots of spaces
NSString *newString = [regex stringByReplacingMatchesInString:someString options:0 range:NSMakeRange(0, someString.length) withTemplate:@" "];


文章来源: How do I remove all unnecessary whitespace from a string?