2011-04-08 101 views

回答

7
NSString *newString = @"I like Programming and gaming."; 
NSString *newString1 = [newString stringByReplacingOccurrencesOfString:@"I" withString:@""]; 
NSString *newString12 = [newString1 stringByReplacingOccurrencesOfString:@"like" withString:@""]; 
NSString *final = [newString12 stringByReplacingOccurrencesOfString:@"and" withString:@""]; 

分配給編輯的錯誤字符串變量,現在它是好的

NSLog(@"%@",final); 

輸出:編程遊戲

5
NSString * newString = [@"I like Programming and gaming." stringByReplacingOccurrencesOfString:@"I" withString:@""]; 
newString = [newString stringByReplacingOccurrencesOfString:@"like" withString:@""]; 
newString = [newString stringByReplacingOccurrencesOfString:@"and" withString:@""]; 

NSLog(@"%@", newString); 
0

讓你的字符串的可變副本(或初始化它的NSMutableString),然後使用replaceOccurrencesOfString:withString:options:range:來取代給定的字符串@「」(空字符串)。

4

更高效,比做一串串聯stringByReplacing...通話維護:

NSSet* badWords = [NSSet setWithObjects:@"I", @"like", @"and", nil]; 
NSString* str = @"I like Programming and gaming."; 
NSString* result = nil; 
NSArray* parts = [str componentsSeparatedByString:@" "]; 
for (NSString* part in parts) { 
    if (! [badWords containsObject: part]) { 
     if (! result) { 
      //initialize result 
      result = part; 
     } 
     else { 
      //append to the result 
      result = [NSString stringWithFormat:@"%@ %@", result, part]; 
     } 
    } 
} 
+0

虛擬+1對於進入這樣做的很長的路要走思想;) – Jordan 2011-04-08 12:29:51

+0

@Jordan - 這僅僅是很長的路要走,直到有需要被過濾十幾字。當有100多個單詞被過濾時,這種方法看起來會比較緊湊。 – aroth 2011-04-08 12:43:47

+0

我聽到你;)這就是爲什麼v + 1;) – Jordan 2011-04-08 13:01:20

3

這是一個老問題,但我想展示我的解決方案:

NSArray* badWords = @[@"the", @"in", @"and", @"&",@"by"]; 
NSMutableString* mString = [NSMutableString stringWithString:str]; 

for (NSString* string in badWords) { 
    mString = [[mString stringByReplacingOccurrencesOfString:string withString:@""] mutableCopy]; 
} 

return [NSString stringWithString:mString]; 
相關問題