删除NSString中的多个空格

New*_*bee 23 iphone objective-c ios

我有一个NSString,这有多个空格,我想修剪那些空格,并为@"如何.....你......"制作一个单独的空间进入@"你好吗".(点只是空间)

我试过了

NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];
Run Code Online (Sandbox Code Playgroud)

它似乎不起作用.任何的想法.

Mad*_*nRP 46

您可以使用正则表达式来完成此任务:

NSError *error = nil;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"  +" options:NSRegularExpressionCaseInsensitive error:&error];
Run Code Online (Sandbox Code Playgroud)

该模式是一个空格,后跟一个或多个空格.将其替换为字符串中的单个空格:

NSString *trimmedString = [regex stringByReplacingMatchesInString:user_ids options:0 range:NSMakeRange(0, [user_ids length]) withTemplate:@" "];
Run Code Online (Sandbox Code Playgroud)


Rav*_*rma 11

user1587011

NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];
Run Code Online (Sandbox Code Playgroud)

这个字符串方法用于删除字符串的开头和结尾处的空格.

尝试这个它给你你想要的东西: -

NSString *theString = @"    Hello      this  is a   long       string!   ";

NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];
NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"];

NSArray *parts = [theString componentsSeparatedByCharactersInSet:whitespaces];
NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];
theString = [filteredArray componentsJoinedByString:@" "];
Run Code Online (Sandbox Code Playgroud)

  • +1 for filteredArrayUsingPredicate和componentsJoinedByString (2认同)

Wol*_*ink 11

当我尝试时,这有效:

NSString *trimmedString = @"THIS      IS      A     TEST S    STRING   S D        D F ";
    while ([trimmedString rangeOfString:@"  "].location != NSNotFound) {
        trimmedString = [trimmedString stringByReplacingOccurrencesOfString:@"  " withString:@" "];
    }
NSLog(@"%@", trimmedString);
Run Code Online (Sandbox Code Playgroud)

  • 老兄,这是一个字符的错字冷静下来。现在修复。 (2认同)