У меня есть строка вроде
"I am a boy".
Я хочу напечатать вот так
"I
am
a
boy".
Кто-нибудь может мне помочь?
У меня есть строка вроде
"I am a boy".
Я хочу напечатать вот так
"I
am
a
boy".
Кто-нибудь может мне помочь?
Ответы:
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
Вы также можете использовать System.lineSeparator():
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator").
String x = "Hello, %n there";. Добавлены пробелы вокруг %nтолько для удобства чтения.
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.
Это можно сделать несколькими способами. Я упоминаю 2 простых способа.
Очень простой способ, как показано ниже:
System.out.println("I\nam\na\nboy");Это также можно сделать с помощью конкатенации, как показано ниже:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");Пытаться:
System.out.println("I\nam\na\nboy");
Чтобы сделать код переносимым в любую систему, я бы использовал:
public static String newline = System.getProperty("line.separator");
Это важно, потому что разные ОС используют разные обозначения для новой строки: Windows использует «\ r \ n», классический Mac использует «\ r», а Mac и Linux используют «\ n».
Комментаторы - поправьте меня, пожалуйста, если я ошибаюсь ...
\n используется для выделения отдельной строки;
Пример:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
Результат:
I
am
boy
Если вы просто хотите напечатать новую строку в консоли, вы можете использовать «\ n» для новой строки.
Если вы хотите разбить текст в компонентах Swing, вы можете использовать html:
String s = "<html>first line<br />second line</html>";
Если вы хотите, чтобы ваш код не зависел от ОС, вы должны использовать println для каждого слова
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
потому что Windows использует "\ r \ n" в качестве новой строки, а системы unixoid используют только "\ n"
println всегда использует правильный
println()в конец строки (а не в начало) добавляется символ новой строки .
System.lineSeparator()или System.getProperty("line.separator")может использоваться, чтобы сделать систему кода независимой.
А как насчет %nиспользования такого форматера String.format()?:
String s = String.format("I%nam%na%nboy");
Как говорится в этом ответе , он доступен из java 1.5 и является другим способом System.getProperty("line.separator")или, System.lineSeparator()и, как эти два, не зависит от ОС .
Разрывы строк, не зависящие от платформы
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
Вывод:
bandham
manikanta
Ноты:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
Пример полной программы с интересным поворотом:
Откройте новый пустой документ и сохраните его как %yourJavaDirectory%/iAmABoy/iAmABoy.java. «iAmABoy» - это имя класса.
Вставьте следующий код и прочтите его. Помните, я новичок, поэтому ценю все отзывы!
//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!");
}
}
Теперь в терминале / cmd перейдите %yourJavaDirectory%/iAmABoyи введите:
javac iAmABoy.java
java iAmABoy I am a boy
Вы можете заменить аргументы I am a boyчем угодно!
argsнапрямую, nlSeparated()либо заставьте nlSeparated()взять скаляр Stringвместо массива. Первый вариант, наверное, лучше. Кроме того, распечатайте свою подпись с помощью printlnвместо print.
mainзаменить for (String arg : args) { nlSeparated(arg); }на просто nlSeparated(args);. nlSeparatedуже принимает список Strings. Для лучшего объяснения см. Здесь: stackoverflow.com/a/12534579/2988730
Я использую этот код 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);
}
}
с терминалом я могу использовать arg, I\\nam\\na\\boyчтобы System.out.printlnраспечатать
I
am
a
boy
вы можете использовать <br>тег в своей строке для отображения на html-страницах