He estado tratando de deshacerme de los espacios en blanco en un NSString, pero ninguno de los métodos que he probado funcionó.
Tengo "this is a test"y quiero llegar "thisisatest".
He usado whitespaceCharacterSet, que se supone que elimina los espacios en blanco.
NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
pero seguí obteniendo la misma cadena con espacios. ¿Algunas ideas?
objective-c
string
cocoa
nsstring
marsalal1014
fuente
fuente

Respuestas:
stringByTrimmingCharactersInSetsolo elimina los caracteres del principio y el final de la cadena, no los del medio.1) Si necesita eliminar solo un carácter dado (digamos el espacio) de su cadena, use:
2) Si realmente necesita eliminar un conjunto de caracteres (es decir, no solo el carácter de espacio, sino cualquier carácter de espacio en blanco como espacio, tabulación, espacio irrompible, etc.), puede dividir su cadena usando y
whitespaceCharacterSetluego unir las palabras nuevamente en una cadena :Tenga en cuenta que esta última solución tiene la ventaja de manejar todos los espacios en blanco y no solo los espacios, sino que es un poco menos eficiente que el
stringByReplacingOccurrencesOfString:withString:. Entonces, si realmente solo necesita eliminar el carácter de espacio y está seguro de que no tendrá ningún otro carácter de espacio en blanco que el carácter de espacio en blanco, use el primer método.fuente
Prefiero usar expresiones regulares como esta:
Puede hacerse una categoría en NSString para hacer la vida aún más fácil:
}
Aquí hay un método de prueba de unidad también:
fuente
Tarea fácil usando
stringByReplacingOccurrencesOfStringfuente
Esto puede ayudarlo si está experimentando
\u00a0en lugar de(espacios en blanco). Tuve este problema cuando intentaba extraer los números de teléfono de contacto del dispositivo. Necesitaba modificar la cadena phoneNumber para que no tenga espacios en blanco.¿Cuándo
yourStringfue el número de teléfono actual?fuente
yourString.replacingOccurrences(of: "\u{00a0}", with: "")stringByReplacingOccurrencesOfString reemplazará todo el espacio en blanco en la cadena, no solo el inicio y el final
Utilizar
fuente
stringByReplacingOccurrencesOfStringpero da un ejemplo destringByTrimmingCharactersInSet?fuente
Esto para mí es la mejor manera SWIFT
y el resultado es: ciaociao
¡Pero el truco es este!
fuente
Use debajo del marco y elimine el espacio.
en otro archivo, llame a TRIM:
Que te ayude ...
fuente
Eso es para eliminar cualquier espacio que sea cuando obtiene texto de cualquier campo de texto, pero si desea eliminar espacio entre cadenas, puede usar
Reemplazará el espacio vacío sin espacio y el campo vacío se ocupa del siguiente método:
fuente
fuente
Le sugiero que coloque esto en algún lugar de su proyecto:
fuente