2013-12-19 52 views
0

我可以用较少的代码来做到这一点吗?多字符串的有效方式ByByReplacingOccurrencesOfString

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

如果一个字符串在*中间包含这些*,你希望这些被删除,还是只是在开始和结束? –

+0

在while循环中使用一个动态增加变量的数组,然后在'objectAtIndex:(intVar)'中使用' –

回答

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); 

只是一个免责声明,上面是由心脏写有一些方法快速查找代码,有些事情可能无法正常工作,但它背后的想法应该。

第二,可能更快的方法是使用诸如JRG-Developer所提到的NSCharacterSet,但是这将删除只能跟踪空格。

+0

是的,'stringByTrimmingCharactersInSet'只会删除集合中的结尾或开始字符。我已经更新了我的答案以反映这一点。 –

+0

干杯,没有注意到编辑:)。 – Adis

+0

如果你真的在寻找*某些模式*的字符,正则表达式应该是要走的路。然而,在这种情况下,OP正在寻找空格,换行符等,我希望正则表达式会最终阻碍性能,而不是简单地执行'stringByReplacingOccurrencesOfString:',因为OP显示... –

相关问题