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 formato2$
- muestra el segundo argumento de valor debe ponerse aquí2
- el formato tiene dos caracteress
- 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