从NSString中删除字符?

NSString *myString = @"ABCDEFG"; 

我想删除空格,所以新的string将是“ABCDEFG”。

你可以使用:

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

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

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

采取从NSString

 stringByReplacingOccurrencesOfString:withString: 

返回一个新的string,其中接收方中所有出现的目标string被另一个给定的stringreplace。

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

参数

目标

 The string to replace. 

替代

 The string with which to replace target. 

返回值

一个新的string,其中接收者中所有出现的目标被replacereplace。

以上所有将正常工作。 但正确的方法是这样的:

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

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

谢谢

如果string是可变的 ,那么你可以使用这种forms在适当的位置进行转换:

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

如果您希望结果是inputstring的可变实例,这也是有用的:

 NSMutableString * string = [concreteString mutableCopy]; [string replaceOccurrencesOfString:@" " withString:@"" options:0 range:NSMakeRange(0, string.length)]; 

你可以试试这个

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

希望这会帮助你。