96
NSString *myString = @"A B C D E F G";

我想删除空格,所以新字符串是“ABCDEFG”。

4

6 回答 6

282

你可以使用:

NSString *stringWithoutSpaces = [myString 
   stringByReplacingOccurrencesOfString:@" " withString:@""];
于 2009-05-29T12:45:50.040 回答
80

如果你想一次支持多个空格,或者支持任何空格,你可以这样做:

NSString* noSpaces =
    [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
                           componentsJoinedByString:@""];
于 2009-05-29T16:41:35.763 回答
11

取自NSString

stringByReplacingOccurrencesOfString:withString:

返回一个新字符串,其中接收器中所有出现的目标字符串都被另一个给定的字符串替换。

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement

参数

目标

The string to replace.

替代品

The string with which to replace target.

返回值

一个新字符串,其中接收器中所有出现的目标都被替换替换。

于 2011-03-21T10:28:18.003 回答
11

以上都可以正常工作。但正确的方法是这样的:

yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

它将像 TRIM 方法一样工作。它将删除所有前后空间。

谢谢

于 2012-11-09T12:32:52.207 回答
6

如果字符串是mutable,那么您可以使用以下形式对其进行转换:

[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];

如果您希望结果是输入字符串的可变实例,这也很有用:

NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];
于 2012-08-12T09:49:07.187 回答
4

你可以试试这个

- (NSString *)stripRemoveSpaceFrom:(NSString *)str {
    while ([str rangeOfString:@"  "].location != NSNotFound) {
        str = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    }
    return str;
}

希望这会帮助你。

于 2012-10-23T13:31:34.027 回答