objective-c string nsstring nscharacterset

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?



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.