Un caso común para reutilizar un argumento en String.format
es con un separador (por ejemplo, ";"
para CSV o pestaña para consola).
System.out.println(String.format("%s %2$s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; ; ; b"
Esta no es la salida deseada. "c"
no aparece en ningún lado
Primero debe usar el separador (con %s
) y solo usar el índice de argumento ( %2$s
) para las siguientes ocurrencias:
System.out.println(String.format("%s %s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; b ; c"
Se agregan espacios para facilitar la lectura y la depuración. Una vez que el formato parece ser correcto, se pueden eliminar espacios en el editor de texto:
System.out.println(String.format("%s%s%s%2$s%s%n", "a", ";", "b", "c"));
// "a;b;c"