Java String nueva línea


Respuestas:


142
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

@the_prole explicado aquí
Prince John Wesley

La tercera opción es la mejor para la portabilidad.
Amos Bordowitz


49

Ejemplo

System.out.printf("I %n am %n a %n boy");

Salida

I 
 am 
 a 
 boy

Explicación

Es mejor usarlo %ncomo un carácter de nueva línea independiente del sistema operativo en lugar de \ny 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. %nes independiente del sistema operativo, es portátil. Significa \nen sistemas Unix o \r\nen sistemas Windows, etc. Por lo tanto, no use \n, en su lugar use %n.


1
ver sección Separador de línea en documentos
Lu55

29

Se puede hacer de varias maneras. Menciono 2 formas simples.

  1. De manera muy simple como a continuación:

    System.out.println("I\nam\na\nboy");
  2. También se puede hacer con concatenación de la siguiente manera:

    System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");


13

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 ...


7

\n se usa para hacer una línea separada;

Ejemplo:

System.out.print("I" +'\n'+ "am" +'\n'+ "boy"); 

Resultado:

I
am
boy

44
Por favor, lea otras respuestas primero. Tu solución ya está ahí.
Honza Zidek

6

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>";

Esto funciona para mi. Y estoy usando la fuente Unicode. Esto funciona mejor
Sahan

5

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


3
Esta no es una buena solución para escribir demasiados System.out.println ()
Ripon Al Wasim

@op Recuerde que println()agrega un carácter de nueva línea al final de la cadena (no al principio).
Wolfpack'08

@Hachi, System.lineSeparator()o System.getProperty("line.separator")puede usarse para hacer que el sistema de código sea independiente.
Ashish Kumar

3

¿Qué pasa con el %nuso 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 .


2

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()


1

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%/iAmABoyy escriba:

javac iAmABoy.java
java iAmABoy I am a boy

¡Puedes reemplazar los args I am a boycon cualquier cosa!


No necesitas dos bucles. Pase argsdirectamente nlSeparated()ao nlSeparated()tome un escalar en Stringlugar de una matriz. La primera opción es probablemente mejor. Además, imprima su firma con en printlnlugar de print.
Mad Physicist

En main, reemplace for (String arg : args) { nlSeparated(arg); }con solo nlSeparated(args);. nlSeparatedya acepta una lista de Strings. Para una mejor explicación, vea aquí: stackoverflow.com/a/12534579/2988730
Mad Physicist

1

Ve por una división.

String string = "I am a boy";
for (String part : string.split(" ")) {
    System.out.println(part);
}

0

System.out.println ("I \ nam \ na \ nboy");

Esto funciona También le dará un carácter de espacio antes de ingresar el carácter


0

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\\boypara System.out.printlnimprimir

I
am
a
boy

ingrese la descripción de la imagen aquí


-1

puede usar la <br>etiqueta en su cadena para mostrar en páginas html


2
Siempre es una mala idea incrustar el marcado en su salida. Nunca se sabe qué tecnología de visualización utilizan sus usuarios. Lo mejor es mantenerlo lo más genérico posible y usar un filtro de formato para mostrar si es necesario.
TMN

Dije que solo funciona en la página html, es solo una sugerencia para quienes desean mostrar un texto simple en las páginas web.
Mehdi Roostaeian
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.