2010-08-13 4 views

ответ

37

Если вы не слишком беспокоитесь об эффективности, простым способом будет [[myString componentsSeparatedByCharactersInSet:myCharacterSet] componentsJoinedByString:@""].

В противном случае вы можете пробегать символы в цикле, добавляя те, которые не были установлены в новую строку. Если вы сделаете это так, не забудьте использовать NSMutableString для получения результата по мере его создания.

3

Вы можете использовать NSScanner для сканирования по строке, сканирование фрагмента символов, не входящих в набор, добавление его в строку результата, сканирование символов в наборе в переменную, которую вы в противном случае игнорировать и повторять до тех пор, пока сканер не достигнет конца.

2

Checkout следующий код:

@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 

Если вы задаете замены строки @ «» вы бы удалить символы в наборе.

 Смежные вопросы

  • Нет связанных вопросов^_^