Ответ 1
Да, для этого можно использовать спецификатор $
. Число, предшествующее $
, указывает номер аргумента, начиная с 1:
String.format("%1$s FOO %1$s %1$s", "test")
Я использую String.format
для создания форматированной строки с аргументами. Можно ли как-то сказать, чтобы форматировать несколько раз использовать аргумент?
String.format(%s FOO %s %s, "test"); //desired output: "test FOO test test"
Да, для этого можно использовать спецификатор $
. Число, предшествующее $
, указывает номер аргумента, начиная с 1:
String.format("%1$s FOO %1$s %1$s", "test")
Как дополнение к Keppils отвечает: Когда вы запустили нумерацию одного из своих аргументов, вы должны их пронумеровать, иначе результат не будет таким, как ожидалось.
String.format("Hello %1$s! What a %2$s %1$s!", "world", "wonderful");
// "Hello world! What a wonderful world!"
будет работать. Пока
String.format("Hello %1$s! What a %s %1$s!", "world", "wonderful");
// "Hello world! What a world world!"
не будет работать. (Но не вызывает никаких ошибок, поэтому это может остаться незамеченным.)
String.format("%1$s FOO %1$s %1$s", "test");