2010-08-13 18 views
17

NSString aygıtımdan kaldırmak istediğim tüm karakterleri içeren bir NSCharacterSet sahibim.NSString gelen NSCharacterSet karakterlerini kaldır

Bunu nasıl yapabilirim? Verimlilik konusunda fazla endişeli değilseniz, basit bir yol [[myString componentsSeparatedByCharactersInSet:myCharacterSet] componentsJoinedByString:@""] olur.

cevap

37

Aksi taktirde, bir döngü içindeki karakterleri kullanarak, kümede olmayanları yeni bir dizeye ekleyebilirsin. Bunu böyle yaparsanız, oluşturduğunuz sonucu elde etmek için NSMutableString'u kullanmayı unutmayın.

3

NSScanner Dizgiyi taramak, bir karakter kümesinde olmayan karakter kümesini taramak, sonuç dizenize eklemek, kümedeki karakterleri başka bir değişkene taramak için NSScanner kullanabilirsiniz. Tarayıcıyı sonlandırıncaya kadar göz ardı edin ve tekrarlayın.

2

Ödeme şu kod:

@implementation NSString(Replacing) 

- (NSString *)stringByReplacingCharactersInSet:(NSCharacterSet *)charSet withString:(NSString *)aString { 
    NSMutableString *s = [NSMutableString stringWithCapacity:self.length]; 
    for (NSUInteger i = 0; i < self.length; ++i) { 
     unichar c = [self characterAtIndex:i]; 
     if (![charSet characterIsMember:c]) { 
      [s appendFormat:@"%C", c]; 
     } else { 
      [s appendString:aString]; 
     } 
    } 
    return s; 
} 


@end 

Eğer bir yedek dizesini belirtirseniz @ "" Eğer kümesindeki karakterleri kaldırır.