Formato.de.cadena
d es la salida normal
2d es para generar el número con un ancho de 2 y alineación a la derecha. Si el número de dígitos de datos es menor que 2, se rellenarán los espacios. a la izquierda
p>
02d, similar a 2d, excepto que se agrega 0 a la izquierda
El primer parámetro de string.format() es el formato de cadena, y puede haber cualquier número de parámetros posteriores, que se utilizan para completar el primer carácter de control de formato en cada parámetro y, finalmente, devuelve la cadena formateada completa.
Los caracteres de control de formato comienzan con y los más utilizados son los siguientes
s?-Acepta una cadena y formatea la cadena de acuerdo con los parámetros dados
d - Acepta un número y lo convierte a formato entero con signo
f ? Acepta un número y lo convierte a formato de punto flotante (decimal), conservando 6 decimales de forma predeterminada, se rellenan bits insuficientes. con 0s
x - acepta un número y lo convierte a formato hexadecimal en minúsculas
Formato
1. Formatee el número entero: [index$][identificación][ método de conversión de ancho mínimo]
La cadena de formato consta de 4 partes, entre las cuales [index$] El significado de ] es el carácter de formato, y el significado de [ancho mínimo] también es fácil de entender, es decir es decir, el número mínimo de dígitos contenidos en la cadena final convertida a partir del número entero. Echemos un vistazo al significado de las 2 partes restantes:
Logotipo:
'-' está alineado a la izquierda dentro del ancho mínimo y no se puede usar junto con "rellenar con 0"
'#' solo se aplica a octal y hexadecimal. En octal, agregue un 0 delante del resultado, y en hexadecimal, agregue 0x delante del resultado
' '. Resultado Incluya siempre un símbolo (generalmente solo aplicable a decimal, si el objeto es BigInteger, se puede usar para octal y hexadecimal)
''Agregue un espacio antes de los valores positivos y antes de los valores negativos Agregue un espacio negativo signo (generalmente solo aplicable a decimal, si el objeto es BigInteger, se puede usar para octal y hexadecimal)
El resultado '0' se completará con ceros
',' solo es aplicable a decimal, y cada número de 3 dígitos está separado por ","
'('Si el parámetro es un número negativo, el signo negativo no se agregará al resultado pero se agregará un círculo. Los corchetes encierran números (las mismas restricciones que ' ')
Método de conversión:
d-decimal?o-octal?x o X-hexadecimal
. Para ejemplos específicos, una cosa que necesita atención especial es que la mayoría de los caracteres de identificación se pueden usar al mismo tiempo
System.out.println(String.format("1$, 09d", -3123) );
System.out.println(String.format("1$9d",-31));
System.out.println(String.format("1. $ -9d",-31));
System.out.println(String.format("1$(9d",-31));
System.out. println (String.format("1$#9x", 5689));
//El resultado es:
//-0003, 123
// -31
//-31
//(31)
//0x1639
Podemos ver que el flotante número de punto La conversión tiene una opción adicional de "precisión", que puede controlar el número de dígitos después del punto decimal.
Método de conversión:
'e', ?'E'--El resultado tiene el formato de un número decimal expresado en notación informática
'f' --El resultado se formatea en representación decimal ordinaria
'g',?'G'--Según la situación específica, se selecciona automáticamente la representación ordinaria o notación científica
' a',?'A'--?El resultado está formateado como un número de punto flotante hexadecimal con significado y exponente
El formato de caracteres es muy simple, c significa Caracteres, '-' en el logo significa alineación a la izquierda , nada más.
Después de leer la descripción anterior, encontrará que el símbolo de porcentaje "" es un prefijo de un formato especial. Entonces, ¿qué debemos hacer si queremos ingresar un signo de porcentaje? Definitivamente se necesitan caracteres de escape, pero debe tenerse en cuenta que el carácter de escape aquí no es "\", sino "". En otras palabras, la siguiente declaración puede generar un "12":
System.out.println(String.format("1$d ", 12));
System . getProperty("line.separator") puede obtener el separador de línea independiente de la plataforma, pero es demasiado engorroso usarlo en el formato. Entonces, la función de formato viene con un separador de línea independiente de la plataforma, que es String.format("n").
Los siguientes caracteres de sufijo para conversiones de fecha y hora se definen para las conversiones 't' y 'T'. Estos tipos son similares, pero no idénticos, a los definidos por GNU date y POSIX strftime(3c). Se proporcionan tipos de conversión adicionales para acceder a la funcionalidad específica de Java (como el uso de 'L' como milisegundos en segundos).
Los siguientes caracteres de conversión se utilizan para formatear la hora:
'H' ? La hora en formato de 24 horas, formateada como un número de dos dígitos con ceros a la izquierda si es necesario. , es decir, 00 - veintitrés.
'I' ? La hora en formato de 12 horas, formateada como un número de dos dígitos con ceros a la izquierda si es necesario, es decir, 01 - 12.
'k' ? Hora en formato de 24 horas, 0 - 23.
'l' ? La hora en el reloj de 12 horas, es decir, 1 - 12.
'M' ? El minuto de la hora, formateado como un número de dos dígitos con ceros a la izquierda si es necesario, es decir, 00 - 59.
¿'S'? El segundo del minuto, formateado como un número de dos dígitos con ceros a la izquierda si es necesario, es decir, 00 - 60 ("60" es un valor especial requerido para admitir segundos intercalares).
¿'L'? Milisegundos en segundos, formateado como un número de tres dígitos con ceros a la izquierda si es necesario, es decir, 000 - 999.
'N' ? Nanosegundos en segundos, formateado como nueve dígitos con ceros a la izquierda si es necesario, es decir, 000000000 - 999999999.
¿'p'? Una etiqueta AM o PM específica de la configuración regional expresada en minúsculas, como "am" o "pm". Utilice el prefijo de conversión 'T' para forzar esta salida a mayúsculas.
'z' ? Un desplazamiento de zona horaria numérico en formato RFC 822 en relación con GMT, por ejemplo -0800.
'Z' ? Una cadena que representa la abreviatura de la zona horaria. La configuración regional del formateador reemplaza la configuración regional del argumento, si la hay.
's' ? El número de segundos transcurridos desde las 00:00:00 del 1 de enero de 1970, Hora Universal Coordinada (UTC), es decir, la suma de Long.MIN_VALUE/1000 y Long.MAX_VALUE. /1000 la diferencia entre.
'Q' ? El número de milisegundos que han transcurrido desde el 1 de enero de 1970 00:00:00 Hora universal coordinada (UTC), es decir, la diferencia entre Long.MIN_VALUE y Long.MAX_VALUE.
Los siguientes caracteres de conversión se utilizan para dar formato a las fechas:
'B' ? El nombre completo del mes específico de la región, como "enero" y "febrero".
¿'b'? Abreviatura del mes específica de la configuración regional, como "enero" y "febrero".
¿'h'? Igual que 'b'.
'A' ? El nombre completo del día de la semana específico de la región, como "Domingo" y "Lunes"
¿'a'? día de la semana, como "dom" y "lun"
'C' ? El año de cuatro dígitos dividido por 100, formateado como un año de dos dígitos con ceros a la izquierda si es necesario, es decir, 00 - 99
'Y' ? Año, formateado como un número de cuatro dígitos (al menos) con ceros a la izquierda si es necesario, por ejemplo, 0092 equivale a 92 CE en el calendario gregoriano.
'y' ? Los dos últimos dígitos del año, formateados como dos dígitos con ceros a la izquierda si es necesario, es decir, 00 - 99.
'j' ? El número de días del año, formateado como un número de tres dígitos con ceros a la izquierda si es necesario, por ejemplo, 001 - 366 para el calendario gregoriano.
'm' ? Mes, formateado como un número de dos dígitos con ceros a la izquierda si es necesario, es decir, 01 - 13.
'd' ? El número de días de un mes, formateado como un número de dos dígitos con ceros a la izquierda si es necesario, es decir, 01 - 31
'e' ? días en un mes, tiene el formato de un número de dos dígitos, es decir, 1 - 31.
Los siguientes caracteres de conversión se utilizan para formatear combinaciones comunes de fecha y hora.
'R' ? Hora de 24 horas, con formato "tH:tM"
'T' ? Hora de 24 horas, con formato "tH: tM:tS".
'r' ? Hora en formato de 12 horas, con el formato "tI:tM:tS Tp". La posición de la marca AM o PM ("Tp") puede depender de la ubicación.
'D' ? Fecha, con el formato "tm/td/ty".
'F' ? Fecha completa en formato ISO 8601, con el formato "tY-tm-td".
'c' ? Fecha y hora, con el formato "ta tb td tT tZ tY", por ejemplo "domingo 20 de julio 16:17:00 EDT 1969".