String.format()
Собирает строку по шаблону с подстановками вроде %s и %d.
Доступно с: Java 5
Синтаксис
static String format(String format, Object... args)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| format | String | Шаблон: %s — строка, %d — целое, %f — дробное, %n — перевод строки. |
| args | Object... | Значения для подстановки по порядку. |
Возвращаемое значение
StringГотовая строка.
Примеры
Основные подстановки:
void main() {
String s = String.format("%s is %d years old", "Anna", 30);
IO.println(s);
}Результат:
Anna is 30 years oldДробные числа: %.2f округляет до двух знаков, а локаль задаёт разделитель:
void main() {
IO.println(String.format(Locale.ROOT, "Price: %.2f", 9.5));
IO.println(String.format(Locale.GERMANY, "Price: %.2f", 9.5));
IO.println(String.format(Locale.ROOT, "%,d", 1234567));
}Результат:
Price: 9.50
Price: 9,50
1,234,567Ширина поля и выравнивание — таблица:
void main() {
IO.println(String.format("%-8s|%6d|", "apples", 12));
IO.println(String.format("%-8s|%6d|", "kiwi", 150));
IO.println(String.format("%05d", 42));
}Результат:
apples | 12|
kiwi | 150|
00042Примечания
Частые шаблоны: %.2f — два знака после точки, %10s — ширина 10 с выравниванием вправо, %-10s — влево, %,d — разделители тысяч, %x — шестнадцатеричное, %% — сам знак процента.
Без аргумента-локали разделитель дробной части берётся из языка системы: на компьютере с русским языком %.2f даст 9,50. Чтобы всегда была точка, передайте Locale.ROOT первым аргументом. Если тип не подходит к шаблону (%d для строки), будет IllegalFormatConversionException.
См. также
- String.formatted() — Подставляет значения в саму строку как в шаблон — короткая форма String.format().
- System.out.printf() — Выводит строку по шаблону с подстановками %s, %d, %.2f.
- NumberFormat — Форматирует числа, деньги и проценты по правилам выбранной страны.
Вопросы и ответы по теме
В учебнике
- Текстовые блоки и форматирование — Многострочные текстовые блоки в Java, форматирование строк через formatted, String.format и printf, спецификаторы %s, %d, %f и ширина поля.