разница между System.out.printf и String.format - PullRequest
15 голосов
/ 20 июня 2010

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

Ответы [ 5 ]

20 голосов
/ 20 июня 2010

первый записывает в стандартный вывод , а второй возвращает String объект.

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

8 голосов
/ 20 июня 2010

String.format возвращает новую строку, а System.out.printf просто отображает вновь отформатированную строку в 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);
1 голос
/ 25 октября 2011

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

1 голос
/ 20 июня 2010

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

1 голос
/ 20 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...