Tengo una cuerda como
"I am a boy".
Quiero imprimir así
"I
am
a
boy".
Alguien puede ayudarme?
Tengo una cuerda como
"I am a boy".
Quiero imprimir así
"I
am
a
boy".
Alguien puede ayudarme?
Respuestas:
System.out.println("I\nam\na\nboy");
System.out.println("I am a boy".replaceAll("\\s+","\n"));
System.out.println("I am a boy".replaceAll("\\s+",System.getProperty("line.separator"))); // portable way
También puedes usar System.lineSeparator()
:
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator")
.
String x = "Hello, %n there";
. Se agregaron espacios alrededor %n
solo por el bien de la legibilidad.
System.out.printf("I %n am %n a %n boy");
I
am
a
boy
Es mejor usarlo %n
como un carácter de nueva línea independiente del sistema operativo en lugar de \n
y es más fácil que usarSystem.lineSeparator()
Por qué usarlo %n
, porque en cada sistema operativo, la nueva línea se refiere a un conjunto diferente de caracteres;
Unix and modern Mac's : LF (\n)
Windows : CR LF (\r\n)
Older Macintosh Systems : CR (\r)
LF es el acrónimo de Line Feed y CR es el acrónimo de Carriage Return . Los caracteres de escape se escriben dentro del paréntesis. Entonces, en cada sistema operativo, la nueva línea representa algo específico del sistema. %n
es independiente del sistema operativo, es portátil. Significa \n
en sistemas Unix o \r\n
en sistemas Windows, etc. Por lo tanto, no use \n
, en su lugar use %n
.
Se puede hacer de varias maneras. Menciono 2 formas simples.
De manera muy simple como a continuación:
System.out.println("I\nam\na\nboy");
También se puede hacer con concatenación de la siguiente manera:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
Tratar:
System.out.println("I\nam\na\nboy");
Para hacer que el código sea portátil a cualquier sistema, usaría:
public static String newline = System.getProperty("line.separator");
Esto es importante porque diferentes sistemas operativos usan diferentes notaciones para la nueva línea: Windows usa "\ r \ n", Mac clásico usa "\ r", y Mac y Linux usan "\ n".
Comentaristas: corríjanme si me equivoco en esto ...
\n
se usa para hacer una línea separada;
Ejemplo:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
Resultado:
I
am
boy
Si simplemente desea imprimir una nueva línea en la consola, puede usar ´ \ n´ para las nuevas líneas.
Si desea dividir el texto en los componentes de swing, puede usar html:
String s = "<html>first line<br />second line</html>";
Si desea que su código sea no específico, debe usar println para cada palabra
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
porque Windows usa "\ r \ n" como nueva línea y los sistemas unixoides usan solo "\ n"
println siempre usa el correcto
println()
agrega un carácter de nueva línea al final de la cadena (no al principio).
System.lineSeparator()
o System.getProperty("line.separator")
puede usarse para hacer que el sistema de código sea independiente.
¿Qué pasa con el %n
uso de un formateador como String.format()
?
String s = String.format("I%nam%na%nboy");
Como esta respuesta dice, su disposición a partir de Java 1.5 y es otra forma de System.getProperty("line.separator")
u System.lineSeparator()
, y, de esta manera dos, es independiente del sistema operativo .
Saltos de línea independientes de la plataforma
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
Salida:
bandham
manikanta
Notas:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
Ejemplo de programa completo, con un toque divertido:
Abra un nuevo documento en blanco y guárdelo como %yourJavaDirectory%/iAmABoy/iAmABoy.java
. "iAmABoy" es el nombre de la clase.
Pegue el siguiente código y léalo. Recuerde, soy un principiante, ¡así que agradezco todos los comentarios!
//The class name should be the same as your Java-file and directory name.
class iAmABoy {
//Create a variable number of String-type arguments, "strs"; this is a useful line of code worth memorizing.
public static void nlSeparated(String... strs) {
//Each argument is an str that is printed.
for (String str : strs) {
System.out.println(str);
}
}
public static void main(String[] args) {
//This loop uses 'args' . 'Args' can be accessed at runtime. The method declaration (above) uses 'str', but the method instances (as seen below) can take variables of any name in the place of 'str'.
for (String arg : args) {
nlSeparated(arg);
}
//This is a signature. ^^
System.out.print("\nThanks, Wolfpack08!");
}
}
Ahora, en terminal / cmd, busque %yourJavaDirectory%/iAmABoy
y escriba:
javac iAmABoy.java
java iAmABoy I am a boy
¡Puedes reemplazar los args I am a boy
con cualquier cosa!
args
directamente nlSeparated()
ao nlSeparated()
tome un escalar en String
lugar de una matriz. La primera opción es probablemente mejor. Además, imprima su firma con en println
lugar de print
.
main
, reemplace for (String arg : args) { nlSeparated(arg); }
con solo nlSeparated(args);
. nlSeparated
ya acepta una lista de String
s. Para una mejor explicación, vea aquí: stackoverflow.com/a/12534579/2988730
Yo uso este codigo String result = args[0].replace("\\n", "\n");
public class HelloWorld {
public static void main(String[] args) {
String result = args[0].replace("\\n", "\n");
System.out.println(result);
}
}
con terminal puedo usar arg I\\nam\\na\\boy
para System.out.println
imprimir
I
am
a
boy
puede usar la <br>
etiqueta en su cadena para mostrar en páginas html