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