Разница между 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);