Один поширений випадок повторного використання аргументу в String.format
- з роздільником (наприклад, ";"
для CSV або вкладки для консолі).
System.out.println(String.format("%s %2$s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; ; ; b"
Це не бажаний вихід. "c"
ніде не з’являється
Потрібно спочатку використовувати роздільник (з %s
) і використовувати лише індекс аргументу ( %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"