Удалить символы в NSCharacterSet из NSString
У меня есть NSCharacterSet, который содержит все символы, которые я хочу удалить из моей строки NSString.
Как я могу это сделать?
3 ответа
Если вы не слишком беспокоитесь об эффективности, простой способ будет [[myString componentsSeparatedByCharactersInSet:myCharacterSet] componentsJoinedByString:@""]
,
В противном случае вы могли бы бегать по символам в цикле, добавляя символы, которых не было в наборе, к новой строке. Если вы делаете это таким образом, не забудьте использовать NSMutableString
для вашего результата, как вы создаете его.
Оформить заказ следующий код:
@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
Если указать строку замены @"", вы удалите символы из набора.