objective c - stringByTrimmingCharactersInSet: no está eliminando caracteres en medio de la cadena
objective-c nsstring (6)
Anteriormente recibí una respuesta recursiva relativamente complicada para esto (vea el historial de edición de esta respuesta si desea ver esa respuesta), pero luego encontré una línea muy simple:
- (NSString *)stringByRemovingCharactersInSet:(NSCharacterSet *)characterSet {
return [[self componentsSeparatedByCharactersInSet:characterSet] componentsJoinedByString:@""];
}
Quiero eliminar "#" de mi cadena.
Yo he tratado
NSString *abc = [@"A#BCD#D" stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"#"]];
Pero todavía muestra la cadena como "A # BCD # D"
¿Qué podría estar mal?
Consulte la documentación de Apple sobre: stringByReplacingOccurrencesOfString: método en NSString
NSString *str1=[str stringByReplacingOccurrencesOfString:@"#" withString:@""];
Espero que esto ayude.
Escribí una categoría de NSString
para eso:
- (NSString *)stringByReplaceCharacterSet:(NSCharacterSet *)characterset withString:(NSString *)string {
NSString *result = self;
NSRange range = [result rangeOfCharacterFromSet:characterset];
while (range.location != NSNotFound) {
result = [result stringByReplacingCharactersInRange:range withString:string];
range = [result rangeOfCharacterFromSet:characterset];
}
return result;
}
Puedes usarlo así:
NSCharacterSet *funnyCharset = [NSCharacterSet characterSetWithCharactersInString:@"#"];
NSString *newString = [string stringByReplaceCharacterSet:funnyCharset withString:@""];
Tu podrías intentar
NSString *modifiedString = [yourString stringByReplacingOccurrencesOfString:@"#" withString:@""];
Usar abajo
NSString * myString = @"A#BCD#D";
NSString * newString = [myString stringByReplacingOccurrencesOfString:@"#" withString:@""];
stringByTrimmingCharactersInSet
elimina los caracteres desde el principio y el final de su cadena, no desde cualquier lugar en ella
Para su propósito, use stringByReplacingOccurrencesOfString:withString:
method as others.