W3docs

Вывод в 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. Вы передаёте строку формата с заполнителями и значения для подстановки:

java— editable, runs on the server

Распространённые заполнители:

  • %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 \n in printf)
  • %% — 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.

Практика

Практика
Какой метод выводит аргумент БЕЗ завершающего переноса строки?
Какой метод выводит аргумент БЕЗ завершающего переноса строки?
Was this page helpful?