2014-05-19 81 views
1

早些時候更換逗號的許多發生過的字符串作爲1,2,3,,5,6,7我如何通過一個逗號

要替換字符串,我用stringByReplacingOccurrencesOfString:@",," withString:@",",這使輸出1,2,3,5,6,7

現在我有串如下。

1,2,3,,,6,7

要替換字符串,我用stringByReplacingOccurrencesOfString:@",," withString:@",",這給作爲1,2,3,,6,7

輸出有沒有辦法,我可以替代由一個逗號所有雙逗號。

我知道我可以使用for循環或while循環,但我想檢查是否有任何其他方式?

for (int j=1;j<=100;j++) { 
    stringByReplacingOccurrencesOfString:@",," withString:@","]] 
} 

回答

5
NSString *string = @"1,2,3,,,6,7"; 
NSError *error = nil; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@",{2,}" options:NSRegularExpressionCaseInsensitive error:&error]; 
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@","]; 
NSLog(@"%@", modifiedString); 

這將匹配任何數量,出現在字符串中的。這是未來的證明:)

+0

+1:爲使用正則表達式... –

+0

謝謝。希望它已經解決了你的問題:) – mohamedrias

2

不完美的解決方案,但對於這個

NSString *string = @"1,2,3,,,6,7"; 
NSMutableArray *array =[[string componentsSeparatedByString:@","] mutableCopy]; 
[array removeObject:@""]; 

NSLog(@"%@",[array componentsJoinedByString:@","]);