从NSString中删除字符?

时间:2009-05-29 12:41:10

标签: objective-c nsstring

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

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

6 个答案:

答案 0 :(得分:276)

您可以使用:

NSString *stringWithoutSpaces = [myString 
   stringByReplacingOccurrencesOfString:@" " withString:@""];

答案 1 :(得分:78)

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

NSString* noSpaces =
    [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
                           componentsJoinedByString:@""];

答案 2 :(得分:11)

取自NSString

stringByReplacingOccurrencesOfString:withString:

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

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

参数

The string to replace.

替换

The string with which to replace target.

返回值

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

答案 3 :(得分:10)

以上所有都可行。但正确的方法是:

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

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

由于

答案 4 :(得分: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)];

答案 5 :(得分:3)

你可以试试这个

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

希望这会帮助你。