Вывод в Java: print, println и printf
Выводите текст и значения в консоль с помощью System.out.print, println и printf — узнайте, чем они отличаются друг от друга.
Стандартный способ вывода данных из программы на Java — это System.out, поток стандартного вывода, доступный каждой программе. Он предоставляет три метода, которые вы будете использовать постоянно: print, println и printf. Они отличаются только тем, как обрабатывают переносы строк и форматирование.
System.out.println
println («печать строки») записывает свой аргумент, а затем добавляет перенос строки. Каждый вызов переходит на новую строку:
System.out.println("Line 1");
System.out.println("Line 2");
System.out.println("Line 3");Вывод:
Line 1
Line 2
Line 3Это метод, который вы будете использовать чаще всего.
System.out.print
print работает так же, как println, но без завершающего переноса строки. Полезен, когда нужно вывести несколько значений в одну строку:
System.out.print("Loading");
System.out.print(".");
System.out.print(".");
System.out.print(".");
System.out.println(" done");Вывод:
Loading... doneВывод значений, а не только строк
Оба метода — print и println — принимают любой тип, а не только строки. Среда выполнения автоматически преобразует числа, булевы значения, символы и даже объекты в строку:
System.out.println(42);
System.out.println(3.14);
System.out.println(true);
System.out.println('A');Для произвольных объектов среда выполнения вызывает их метод toString() (подробнее в разделе ООП).
Конкатенация строк с помощью +
Оператор + объединяет строки — а если добавить число или другое значение, Java преобразует его автоматически:
String name = "Ada";
int age = 36;
System.out.println("Hello, " + name + "! You are " + age + " years old.");Вывод:
Hello, Ada! You are 36 years old.System.out.printf — форматированный вывод
printf («печать с форматированием») — это Java-эквивалент функции printf из языка C. Вы передаёте строку формата с заполнителями и значения для подстановки:
Распространённые заполнители:
%s— string%d— integer%f— floating-point number%.2f— float with 2 decimal places%5d— integer in a field 5 characters wide, padded with spaces on the left (right-aligned)%-5d— integer in a field 5 characters wide, padded with spaces on the right (left-aligned)%n— platform-specific newline (use this instead of\ninprintf)%%— a literal%sign
System.err — вывод ошибок
Для вывода ошибок существует отдельный поток: System.err. Он поддерживает те же методы print, println и printf. По соглашению, обычный вывод направляется в System.out, а сообщения об ошибках — в System.err:
System.out.println("Loaded 3 records.");
System.err.println("Warning: could not parse line 5.");В терминале оба потока отображаются вместе, но инструменты перенаправления вывода (> file.txt) могут разделить их.
Распространённые ошибки
- Использование
printвместоprintln. Весь вывод окажется в одну строку без разделителей. - Смешивание
+и,вprintf. Заполнители строки формата заполняются дополнительными аргументами, а не конкатенацией. Используйтеprintf("%s scored %d", name, score), а неprintf("%s scored", name + score). - Забытый
%nвprintf. Без него вывод сливается в одну строку.
Что дальше
Комментарии в Java покажет три синтаксиса комментариев, включая Javadoc — стандартный способ документирования кода на Java.