long java formatter

long - string.format java double



Comprender los $ en las cadenas de formato de Java (4)

4 $: argumento de cuarto valor%: formato de cadena 2: espacio (longitud del argumento) s: es un formato de cadena

por ejemplo, el siguiente fragmento:

StringBuffer sb=new StringBuffer(); Formatter formatter=new Formatter(sb,Locale.UK); formatter.format("%4$5s %3$5s %2$5s %1$5s", "a", "b", "c", "d"); System.out.println(sb);

una salida de:

// espaciado de 5 caracteres entre dos caracteres

d c b a

y reemplazar 5 por 2, producirá el siguiente resultado:

dcba

¿Ver la diferencia? :)

StringBuilder sb = new StringBuilder(); // Send all output to the Appendable object sb Formatter formatter = new Formatter(sb, Locale.US); // Explicit argument indices may be used to re-order output. formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d") // -> " d c b a"

En este caso, ¿por qué se agrega un 2 a $?


El 2$ significa poner el segundo argumento de la lista aquí. El $ sigue un número que no le precede. Del mismo modo, 4$ significa poner el cuarto argumento aquí.

Para aclarar, podemos desglosar el formato %2$2s en sus partes:

  • % - indica que esta es una cadena de formato

  • 2$ - muestra el segundo argumento de valor debe ponerse aquí

  • 2 - el formato tiene dos caracteres

  • s - formatea el valor como una cadena

Puede encontrar más información en la documentación .


El 2 no tiene nada que ver con el $ :

  • % = Inicio de la cadena de formato
  • 4$ = Cuarto argumento (''d'')
  • 2 = ancho de dos (alineado a la derecha)
  • s = tipo de cadena

Esos son argumentos posicionales donde %4$2s señaliza el formato del cuarto argumento como una cadena con ancho 2. Esto es especialmente útil cuando se proporcionan cadenas para la localización donde los argumentos deben reordenarse sin tocar el código fuente.

Los especificadores de formato para los tipos que se utilizan para representar fechas y horas tienen la siguiente sintaxis:

%[argument_index$][flags][width]conversion

El argument_index opcional_index es un entero decimal que indica la posición del argumento en la lista de argumentos. El primer argumento es referenciado por "1$" , el segundo por "2$" , etc. - Documentación del formateador