У мене є рядок, як
"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\nWindows тощо. Таким чином, не використовуйте \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вже приймає список 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-сторінках