2013-12-19 49 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顯示... –

相關問題