В чем разница между MessageFormat.format и String.format в JDK 1.5?
Разница между MessageFormat.format и String.format в jdk1.5?
Ответ 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 обоих методов, чтобы узнать подробности.
Ответ 2
String.format - это просто ярлык для Formatter, это форматер формата "printf". С другой стороны, MessageFormat использует другое соглашение о форматировании, как описано в связанной документации.
Использовать первый "для выравнивания и выравнивания макета, общие форматы для числовых, строковых и данных даты/времени и выходных данных, зависящих от локали", а второй "для создания конкатенированных сообщений нейтральным языком".