Итак, мы все должны знать, что вы можете включать переменные в строки, выполнив:
String string = "A string " + aVariable;
Есть ли способ сделать это, например:
String string = "A string {aVariable}";
Другими словами: без закрытия кавычек и добавления знаков плюса. Это очень непривлекательно.
String.format()
встроены в язык.Ответы:
Вы всегда можете использовать String.format (....). т.е.
Я не уверен, что это достаточно привлекательно для вас, но это может быть весьма кстати. Синтаксис такой же, как у printf и java.util.Formatter. Я часто его использовал, особенно если хочу показать табличные числовые данные.
источник
format
может быть привлекательнее простого выражения конкатенации строк. Само собойformat
разумеется, когда вам нужно выполнить заполнение, форматирование чисел и т. Д.1 + "oops"
), особенно если вы используете FindBugs (который анализирует строки формата и входные параметры). И, как говорит спрашивающий, во многих случаях это более читабельно. Конечно, обидно, чтоformat
метод сделали статичным, это была довольно глупая дизайнерская ошибка.format
относиться к целевой строке? Вы, конечно же, не предполагаете, что мы должны написать"A String %s %2d".format(aStringVar, anIntVar)
... а вы?Это называется строковой интерполяцией; он не существует как таковой в Java.
Один из подходов - использовать String.format:
Другой подход - использовать библиотеку шаблонов, такую как Velocity или FreeMarker .
источник
Также учтите
java.text.MessageFormat
, что использует связанный синтаксис с числовыми индексами аргументов. Например,приводит к
string
содержанию следующего:Чаще всего этот класс используется для числового и временного форматирования. Пример
JFreeChart
форматирования этикетки описан здесь ; классRCInfo
форматирует панель состояния игры.источник
вы можете использовать формат String для включения переменных в строки
Я использую этот код для включения 2 переменных в строку:
источник