Java String новая строка - PullRequest
115 голосов
/ 20 октября 2011

У меня есть строка как

"I am a boy".

Я хочу печатать вот так

"I 
am 
a
boy".

Кто-нибудь может мне помочь?

Ответы [ 15 ]

131 голосов
/ 20 октября 2011
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
102 голосов
/ 24 июля 2015

Вы также можете использовать System.lineSeparator():

String x = "Hello," + System.lineSeparator() + "there";
41 голосов
/ 28 июня 2016

Пример

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

Вывод

I 
 am 
 a 
 boy

Пояснение

Лучше использовать %n в качестве независимого от ОС символа новой строки вместо \nи это проще, чем использовать System.lineSeparator()

Зачем использовать %n, потому что в каждой ОС новая строка ссылается на разные наборы символов;

Unix and modern Mac's   :   LF     (\n)
Windows                 :   CR LF  (\r\n)
Older Macintosh Systems :   CR     (\r)

LF является аббревиатурой Line Feed , а CR является аббревиатурой Carriage Return .Экранирующие символы написаны в круглых скобках.Таким образом, в каждой ОС новая строка обозначает что-то конкретное для системы.%n не зависит от ОС, оно переносимо.Это означает \n в системах Unix или \r\n в системах Windows и так далее.Таким образом, не используйте \n, вместо этого используйте %n.

24 голосов
/ 22 апреля 2013

Это можно сделать несколькими способами.Я упоминаю 2 простых способа.

  1. Очень простой способ, как показано ниже:

    System.out.println("I\nam\na\nboy");
    
  2. Это также можно сделать с помощью конкатенации, как показано ниже:

    System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
    
14 голосов
/ 20 октября 2011

Попробуйте:

System.out.println("I\nam\na\nboy");
9 голосов
/ 24 мая 2015

Чтобы сделать код переносимым на любую систему, я бы использовал:

public static String newline = System.getProperty("line.separator");

Это важно, потому что разные ОС используют разные нотации для новой строки: Windows использует «\ r \ n», Classic Mac использует «\ r ", а Mac и Linux оба используют" \ n ".

Комментаторы - пожалуйста, исправьте меня, если я ошибаюсь в этом ...

7 голосов
/ 31 июля 2015

\n используется для создания отдельной строки;

Пример:

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

Результат:

I
am
boy
6 голосов
/ 20 октября 2011

Если вы просто хотите напечатать новую строку в консоли, вы можете использовать ´ \ n´ для новых строк.

Если вы хотите разбить текст в компонентах Swing, вы можете использовать html:

String s = "<html>first line<br />second line</html>";
5 голосов
/ 20 октября 2011

Если вы хотите, чтобы ваш код был неспецифичным, вы должны использовать println для каждого слова

System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");

, потому что Windows использует "\ r \ n", так как системы перевода строки и unixoid используют просто "\ n"

println всегда использует правильный

3 голосов
/ 31 июля 2015

Как насчет %n с использованием форматера, например String.format()?:

String s = String.format("I%nam%na%nboy");

Как говорит этот ответ , он доступен из java 1.5 и является другим способом к System.getProperty("line.separator") или System.lineSeparator() и, подобно этим двум, не зависит от ОС .

...