多个stringByReplacingOccurrencesOfString的有效方式

时间:2013-12-19 00:01:10

标签: ios objective-c

我可以用更少的代码来做这件事吗?

urlString = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""];
urlString = [urlString stringByReplacingOccurrencesOfString:@"\t" withString:@""];
urlString = [urlString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
urlString = [urlString stringByReplacingOccurrencesOfString:@"\r" withString:@""];

2 个答案:

答案 0 :(得分:4)

如果您只想修剪字符串开头和结尾的空格和空白行,可以使用

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

这包括您提供的所有示例。

答案 1 :(得分:0)

您可以使用正则表达式从字符串中删除空格,其中空格位于字符串中的任何位置。

NSString *removeWhitespaceRegex = @"\\s";   

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:removeWhitespaceRegex
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSString *string = @"Remove whitespace from this string.";

NSString *modifiedString = [regex stringByReplacingMatchesInString:string
                                                           options:0
                                                             range:NSMakeRange(0, [string length])
                                                      withTemplate:@""];

NSLog(@"%@", modifiedString);

只是一个免责声明,上面的代码是用心脏写的,快速查找一些方法,有些东西可能不起作用,但它背后的想法应该。

第二种,可能更快的方法是使用NSCharacterSet,例如JRG-Developer提到的,但这将删除仅尾随空格。