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

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

6 ответов

Решение

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

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

String.format возвращает новую строку, в то время как System.out.printf просто отображает недавно отформатированный String в 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);

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

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

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

Ключевое различие между методами System.out.printf () и String.format () заключается в том, что

  • printf() выводит отформатированную строку в консоль так же, как System.out.println(), но
  • Метод format() возвращает отформатированную строку, которую вы можете хранить или использовать по своему усмотрению.

В противном случае характер использования отличается в зависимости от их функций -

Примерный пример добавления ведущих нулей к числам:

      int num = 5;      
String str = String.format("%03d", num);  // 0005    
System.out.printf("Original number %d, leading with zero : %s", num, str);
Другие вопросы по тегам