Tengo una NSCharacterSet que contiene todos los caracteres que desea quitar de mi NSString.Quitar los caracteres en NSCharacterSet de NSString
¿Cómo puedo hacer eso?
Tengo una NSCharacterSet que contiene todos los caracteres que desea quitar de mi NSString.Quitar los caracteres en NSCharacterSet de NSString
¿Cómo puedo hacer eso?
Si no está demasiado preocupado por la eficiencia, una forma sencilla sería [[myString componentsSeparatedByCharactersInSet:myCharacterSet] componentsJoinedByString:@""]
.
De lo contrario, podría ejecutar a través de los caracteres en un bucle, añadiendo los que no estaban en el conjunto a una nueva cadena. Si lo hace de esa manera, recuerde usar un NSMutableString
para su resultado a medida que lo va creando.
Puede usar un NSScanner para escanear a través de la cadena, escanear un trozo de caracteres-no-en-el-conjunto, adjuntarlo a su cadena de resultados, escanear los caracteres-en-el-conjunto en una variable que de otra manera ignore y repita hasta que el escáner llegue al final.
descargar el código siguiente:
@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
Si especifica una cadena de reemplazo de @ "" que le quite los caracteres en el conjunto.