Ответ 1
Проще говоря, основное отличие заключается в строке формата:
- <строкa >
MessageFormat.format()
принимает позиции аргументов (например, {0}
, {1}
). Пример:
"This is year {0}!"
Разработчику не нужно беспокоиться о типах аргументов, поскольку они чаще всего распознаются и формируются в соответствии с текущим Locale
.
String.format()
принимает аргументы типа аргумента (например, %d
для чисел, %s
для строк). Пример:
"This is year %d!"
String.format()
обычно дает вам больший контроль над тем, как отображается аргумент, благодаря многим параметрам, которые вы можете указать с помощью спецификатора типа. Например, строка форматирования "%-6.2f"
указывает на отображение вычисленного по левому краю числа с плавающей запятой с min. ширина 6 символов и точность 2 десятичных знаков.
Просто посмотрите на javadoc обоих методов, чтобы узнать подробности.