У вас есть два варианта:
java.util.Formatter
- Интерпретатор для строк формата
printf
. Этот класс обеспечивает поддержку выравнивания и выравнивания макета, общие форматы для числовых, строковых данных и данных даты / времени, а также вывод, зависящий от локали.
java.text.MessageFormat
.
MessageFormat
предоставляет средства для создания составных сообщений независимо от языка. Используйте это для создания сообщений, отображаемых для конечных пользователей.
Из этих двух, MessageFormat
намного сильнее. Вот пример использования ChoiceFormat
для обработки 0
, 1
и >1
по-разному:
import java.text.MessageFormat;
import java.util.Date;
//...
String p = "You have {0,choice,0#none|1#one ticket|1<{0,number,integer} tickets} for {1,date,full}.";
for (int i = 0; i < 4; i++) {
System.out.println(MessageFormat.format(p, i, new Date()));
}
Это печатает:
You have none for Tuesday, June 1, 2010.
You have one ticket for Tuesday, June 1, 2010.
You have 2 tickets for Tuesday, June 1, 2010.
You have 3 tickets for Tuesday, June 1, 2010.
В документации есть еще много примеров.