Подтвердить что ты не робот

Java - Включая переменные в строки?

Итак, мы все должны знать, что вы можете включать переменные в строки, делая:

String string = "A string " + aVariable;

Есть ли способ сделать это как:

String string = "A string {aVariable}";

Другими словами: Без необходимости закрывать кавычки и добавлять знаки плюс. Это очень непривлекательно.

4b9b3361

Ответ 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 форматирует область состояния игры.