String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE
NFY
/ACME CONSOLIDATORS"
¿Cómo eliminar el espacio entre "PAQUETE" y "NFY"?Cómo eliminar un retorno de carro de una cadena
String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE
NFY
/ACME CONSOLIDATORS"
¿Cómo eliminar el espacio entre "PAQUETE" y "NFY"?Cómo eliminar un retorno de carro de una cadena
probar este código:
s = s.replaceAll("PACKAGE\\s*NFY", "PACKAGE NFY");
+0 Esto no es lo suficientemente generalizado como para ser útil a los demás. –
¿Ha intentado sustituir una función? Algo en la línea de:
youString.Replace("\r", "")
string = string.replace(/\s{2,}/g, ' ');
Vamos, la pregunta está etiquetada 'java'. ¿No puedes dar una solución en 'Java'? – Romain
¡Uy! Oye, pero aún puedes usar patrón mather y reemplazar la cadena. –
de String.replaceAll
, de hecho, Java toma una expresión regular. Se podría eliminar todos los saltos de línea con:
s = s.replaceAll("\\n", "");
s = s.replaceAll("\\r", "");
Pero esto eliminará todos los nuevas líneas.
Tenga en cuenta el doble \
's: por lo que la cadena que se pasa al analizador de expresiones regulares es \n
.
También puede hacer esto, lo que es más inteligente:
s = s.replaceAll("\\s{2,}", " ");
Esto eliminaría todas las secuencias de 2 o más espacios en blanco, sustituyéndolos por un único espacio. Como las nuevas líneas también son espacios en blanco, debería ser el truco para usted.
Además, 's.replaceAll (" (?: \\ n | \\ r) "," ");' logra lo mismo en una sola declaración. Y uno puede adaptar la expresión para ser más selectivo. – Romain
Puede * siempre * hacer coincidir texto que tenga nuevas líneas en él; no necesitas una bandera para eso. Lo que hace MULTILINE es cambiar el significado de los anclajes, '^' y '$', lo que les permite coincidir en los límites de la línea, así como en el principio y el final de toda la cadena. Como no hay anclajes en su expresión regular, la bandera MULTILINE no tiene ningún efecto. –
Tienes razón, acabo de probarlo con el 'Pattern.MULTILINE' comentado. Pero (lo que probé originalmente) 's = s.replace (" \\ s {2,} "," ");' no funciona. No elimina las nuevas líneas. ¿Alguna idea de por qué? – craigmj
Esta es la respuesta corrent. http://stackoverflow.com/questions/10171852/java-replaceall-doesnt-work-well-with-backlash –