Один из распространенных случаев повторного использования аргумента String.format
- разделитель (например, ";"
для CSV или вкладка для консоли).
System.out.println(String.format("%s %2$s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; ; ; b"
Это не желаемый результат. "c"
нигде не появляется
Сначала необходимо использовать разделитель (с %s
) и использовать только аргумент index ( %2$s
) для следующих случаев:
System.out.println(String.format("%s %s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; b ; c"
Добавлены пробелы для удобства чтения и отладки. Как только формат окажется правильным, пробелы могут быть удалены в текстовом редакторе:
System.out.println(String.format("%s%s%s%2$s%s%n", "a", ";", "b", "c"));
// "a;b;c"