2010-04-05 20 views
30

Asumamos que tengo la cadenaCómo reemplazar un personaje en NSString sin insertar un espacio?

NSString* myString = @"Hello,"; 

¿Cómo puedo eliminar la coma sin dejar un espacio? He tratado:

NSString* newString = [myString stringByReplacingOccurrencesOfString:@"," withString:@""]; 

y

NSString* newString = [myString stringByTrimmingCharactersInSet:[NSCharacterSet punctuationCharacterSet]]; 

Pero ambos están dejando espacios.

+8

No se No lo es, algo más está ocurriendo. –

+2

¿Cómo está verificando que hay un espacio? ¿Puedes mostrar ese código? Apuesto a que el problema está ahí. –

+0

Estoy tokenizando mis cadenas. Separé hello y the, como dos tokens separados. Al construir una cadena de los tokens, había un espacio entre Hello y, –

Respuesta

101

que acaba de ejecutar lo siguiente como una prueba

NSString * myString = @"Hello,"; 

NSString * newString = [myString stringByReplacingOccurrencesOfString:@"," withString:@""]; 

NSLog(@"%@xx",newString); 

y me sale 2010-04-05 18:51:18.885 TestString[6823:a0f] Helloxx como salida. No hay espacio libre.

0
NSString *newString = [myString substringToIndex:5]; 

que asegure que sólo hay 5 caracteres de la cadena, pero ten en cuenta que esto también va a lanzar una excepción si no hay al menos 5 caracteres de la cadena, para empezar. ¿Cómo estás manejando esta cadena? ¿Se muestra al usuario? ¿Está siendo escrito en un archivo? El código que ha publicado no reproduce el error, por lo que quizás deba publicar el código con el que tiene un problema.

0

a la inversa u puede utilizar .. por stringByReplacingCharactersInRange

token = [token stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:@"*"]; 

"token" es su deseo de reemplazar el NSString y "i" es que desea cambiar NSString por "*"

Cuestiones relacionadas