Могут ли аргументы повторного использования Stringformatter?
Я использую String.format для создания форматированной строки с аргументами. Можно ли как-то сказать, чтобы форматировать несколько раз использовать аргумент?
Да, для этого можно использовать спецификатор $. Число, предшествующее $, указывает номер аргумента, начиная с 1:
String.format("%1$s FOO %1$s %1$s", "test")
Ответ 2
Как дополнение к 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!"
не будет работать. (Но не вызывает никаких ошибок, поэтому это может остаться незамеченным.)