2011-04-01 11 views

Respuesta

34

Si la cadena se construyó en el mismo programa, yo recomendaría usar esto:

String newline = System.getProperty("line.separator"); 
boolean hasNewline = word.contains(newline); 

Pero si está specced a utilizar \ n, este controlador ilustra qué hacer:

class NewLineTest { 
    public static void main(String[] args) { 
     String hasNewline = "this has a newline\n."; 
     String noNewline = "this doesn't"; 

     System.out.println(hasNewline.contains("\n")); 
     System.out.println(hasNewline.contains("\\n")); 
     System.out.println(noNewline.contains("\n")); 
     System.out.println(noNewline.contains("\\n")); 

    } 

} 

resultó en

true 
false 
false 
false 

en respuesta a los tu comentario:

class NewLineTest { 
    public static void main(String[] args) { 
     String word = "test\n."; 
     System.out.println(word.length()); 
     System.out.println(word); 
     word = word.replace("\n","\n "); 
     System.out.println(word.length()); 
     System.out.println(word); 

    } 

} 

Resultados en

6 
test 
. 
7 
test 
. 
+0

Funciona pero s = s.replace ("\ n", "\ n"); no reemplaza la nueva línea con nueva línea y espacios. –

+0

Sí lo hace. Actualizando mi respuesta. Muestra claramente un espacio después de la nueva línea. – corsiKa

7

La segunda:

word.contains("\n"); 
+1

he intentado, pero no trabaja –

+1

podría aclarar por qué no funciona. ¿Cuál es su opinión, cuál es el resultado y cuál es el resultado esperado? –

+0

Disculpa por no haber reiniciado mi tomcat después de reconstruir JAr por lo que no tuvo efecto. Funciona ahora aunque Replace s = s.replace ("\ n", "\ n"); no está trabajando . –

8

Para un transporte, que realmente debería hacer algo como esto:

public static final String NEW_LINE = System.getProperty("line.separator") 
. 
. 
. 
word.contains(NEW_LINE); 

a menos que esté absolutamente seguro de que "\n" es lo que desea.

Cuestiones relacionadas