¿Cómo verifico si la cadena contiene \ n o un nuevo carácter de línea?Compruebe si la cadena contiene n Java
word.contains("\\n")
word.contains("\n")
¿Cómo verifico si la cadena contiene \ n o un nuevo carácter de línea?Compruebe si la cadena contiene n Java
word.contains("\\n")
word.contains("\n")
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
.
La segunda:
word.contains("\n");
he intentado, pero no trabaja –
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? –
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 . –
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.
Funciona pero s = s.replace ("\ n", "\ n"); no reemplaza la nueva línea con nueva línea y espacios. –
Sí lo hace. Actualizando mi respuesta. Muestra claramente un espacio después de la nueva línea. – corsiKa