Разница между System.out.printf и String.format

Могу ли я узнать, в чем разница между ними в java? я читаю книгу, и она может либо использовать их для отображения строк.

Ответы

Ответ 1

первый пишет в stdout и второй возвращает объект String.

Что использовать зависит от единственной цели. Если вы хотите отобразить строку в stdout (консоли), используйте первый. Если вы хотите получить дескриптор форматированной строки для дальнейшего использования кода, используйте вторую.

Ответ 2

String.format возвращает новую строку, а System.out.printf просто отображает только что отформатированную строку String to System.out, иногда называемую консолью.

Эти два фрагмента кода функционально эквивалентны:

String formattedString = String.format("%d is my favorite number", 42);
System.out.print(formattedString);

и

System.out.printf("%d is my favorite number", 42);

Ответ 3

String.format форматирует строки, не отображает их. Я думаю, вы имеете в виду System.out.println(String.format("......", ....)) или какую-то аналогичную конструкцию?

Ответ 4

String.format возвращает форматированную строку. System.out.printf также печатает форматированную строку.

Ответ 5

Эти два метода демонстрируют то же самое поведение. Мы можем использовать формат (...) со String, Java.util.Formatter(J2SE 5), а также с PrintWriter.