remove from delete blank all java string whitespace

from - ¿Cómo eliminar los espacios blancos duplicados en cadena usando Java?



remove spaces from string javascript (9)

¿Cómo eliminar espacios en blanco duplicados (incluyendo pestañas, líneas nuevas, espacios, etc. ...) en una cadena usando Java?


Aunque es demasiado tarde, he encontrado una mejor solución (que funciona para mí) que reemplazará todos los espacios blancos consecutivos del mismo tipo con un espacio en blanco de su tipo. Es decir:

Hello!/n/n/nMy World

estarán

Hello!/nMy World

Observe que todavía hay espacios en blanco iniciales y finales. Entonces mi solución completa es:

str = str.trim().replaceAll("(//s)+", "$1"));

Aquí, trim() reemplaza todas las cadenas de espacios en blanco iniciales y finales con "". (//s) es para capturar //s (es decir, espacios en blanco como '''', ''/ n'', ''/ t'') en el grupo # 1 . + signo + es para hacer coincidir 1 o más token anterior. Por lo tanto, (//s)+ pueden ser caracteres consecutivos (1 o más) entre cualquier carácter de espacio en blanco ('''', ''/ n'' o ''/ t''). $1 es para reemplazar las cadenas coincidentes con la cadena del grupo n. ° 1 (que solo contiene 1 carácter de espacio en blanco) del tipo coincidente (es decir, el carácter de espacio en blanco único que ha coincidido). La solución anterior cambiará así:

Hello!/n/n/nMy World

estarán

Hello!/nMy World

No he encontrado la solución anterior aquí, así que la publiqué.


Esto puede ser posible en tres pasos:

  1. Convierta la cadena en matriz de caracteres (ToCharArray)
  2. Solicitar bucle en charater array
  3. Luego, aplique la función de reemplazo de cadena (Reemplazar ("picar que quiere reemplazar", "cuerda original"));

Hola, la forma más rápida (pero no la más bonita) que encontré es

while (cleantext.indexOf(" ") != -1) cleantext = StringUtils.replace(cleantext, " ", " ");

esto se está ejecutando bastante rápido en Android en oposición a una expresión regular


Me gusta esto:

yourString = yourString.replaceAll("//s+", " ");

Por ejemplo

System.out.println("lorem ipsum dolor /n sit.".replaceAll("//s+", " "));

salidas

lorem ipsum dolor sit.

¿Qué significa eso? /s+

/s+ es una expresión regular. /s coincide con un espacio, pestaña, nueva línea, retorno de carro, avance de página o pestaña vertical, y + dice "uno o más de esos". Por lo tanto, el código anterior colapsará todas las "subcadenas de espacios en blanco" más largas que un carácter, con un solo carácter de espacio.

Fuente: Java: eliminación de espacios blancos duplicados en cadenas


Pruebe esto: debe import java.util.regex.*;

Pattern pattern = Pattern.compile("//s+"); Matcher matcher = pattern.matcher(string); boolean check = matcher.find(); String str = matcher.replaceAll(" ");

Donde string es su cadena en la que necesita eliminar espacios en blanco duplicados


Puedes usar la expresión regular

(/s)/1

y

reemplázalo con $1 .

Código Java:

str = str.replaceAll("(//s)//1","$1");

Si la entrada es "foo/t/tbar " obtendrás "foo/tbar " como salida
Pero si la entrada es "foo/t bar" , permanecerá sin cambios porque no tiene ningún espacio en blanco de forma consecutiva.

Si trata todos los espacios en blanco (espacio, pestaña vertical, pestaña horizontal, retorno de carro, avance de página, nueva línea) como espacio, puede usar la siguiente expresión regular para reemplazar cualquier cantidad de espacios en blanco consecutivos con un solo espacio:

str = str.replaceAll("//s+"," ");

Pero si desea reemplazar dos espacios en blanco consecutivos con un espacio único, debe hacer lo siguiente:

str = str.replaceAll("//s{2}"," ");


Si quieres deshacerte de todos los espacios en blanco externos y principales, entonces quieres hacer algo como esto:

// //A = Start of input boundary // //z = End of input boundary string = string.replaceAll("//A//s+(.*?)//s+//z", "$1");

Luego puede eliminar los duplicados utilizando las otras estrategias que se enumeran a continuación:

string = string.replaceAll("//s+"," ");


También puede probar String Tokeniser para cualquier espacio, pestaña, nueva línea y todo. Una forma simple es

String s = "Your Text Here"; StringTokenizer st = new StringTokenizer( s, " " ); while(st.hasMoreTokens()) { System.out.print(st.nextToken()); }


String str = " Text with multiple spaces "; str = org.apache.commons.lang3.StringUtils.normalizeSpace(str); // str = "Text with multiple spaces"