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:
stringByTrimmingCharactersInSet
solo 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
whitespaceCharacterSet
luego 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
stringByReplacingOccurrencesOfString
fuente
Esto puede ayudarlo si está experimentando
\u00a0
en 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
yourString
fue 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
stringByReplacingOccurrencesOfString
pero 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