У мене є рядок, як
"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 - абревіатура подачі рядків, а CR - акронім повернення перевезення . Символи втечі записуються всередині дужок. Тож у кожній ОС новий рядок означає щось конкретне для системи. %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>";
Якщо ви хочете мати свій код os-неспецифічний, слід використовувати println для кожного слова
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
тому що Windows використовує "\ r \ n", оскільки нові рядки та однокласні системи використовують просто "\ 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
вже приймає список String
s. Для кращого пояснення дивіться тут: 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-сторінках