2009-11-26 8 views

Respuesta

11
System.out.println("  AA  BB".replaceAll("\\s+", " ").trim()); 

Salida:

Nota: A diferencia de las otras soluciones aquí, esto también sustituye a una sola pestaña con un solo espacio. Si usted no tiene ningún pestañas se pueden utilizar "{2}" en lugar que será aún más rápido:

System.out.println("  AA  BB".replaceAll(" {2,}", " ").trim()); 
+1

Gracias un montón ... :) –

7

sustituir a dos o más espacios "\\s{2,}" por un único espacio " " y hacer un trim() después para eliminar de los principales y espacios finales a medida que mostramos en la primera ejemplo.

output = input.replaceAll("\\s{2,}", " ").trim(); 
2
s = s.replaceAll("\\s+", " ").trim(); 
0

Hay respuestas correctas aquí, por ejemplo:

s = s.replaceAll("\\s+", " ").trim(); 

Pero Creo que también es importante elegir la pregunta correcta. En lugar de preguntar acerca de cómo recortar un String usando expresiones regulares, ¿por qué no solo pregunta por el recorte del String y permite que las personas que responden te muestren la mejor estrategia?

Puede haber mejores formas de colapsar espacios que utilizar una expresión regular. Ciertamente hay otras formas.

+0

La pregunta ha sido editada. ¿Podrías por favor mostrarme una mejor manera? Gracias. –

+0

No quise dar a entender que hubiera una manera indiscutiblemente mejor. Si supiera uno, sin duda le habría dicho sin insistir en que primero se cambie la pregunta. Solo quería señalar que era posible que estuviera limitando las respuestas basadas en la suposición de la estrategia correcta. Diría que a menos que tengas razones de rendimiento muy fuertes para querer experimentar con alternativas, la ruta de expresiones regulares es probablemente lo que yo haría. – roryparle

Cuestiones relacionadas