Uso detallado de String.format()

1. Tipo de marcador de posición

La letra que sigue al marcador de posición "%" determina el tipo de parámetro real que acepta. Los tipos de marcador de posición son los siguientes:

inserte la descripción de la imagen aquí
Las letras mayúsculas indican que todas las letras de la salida están en mayúsculas.

Usualmente usamos %s, %d y %f más, y ocasionalmente usamos %t.

2. Formateo de cadenas y enteros

// 补齐空格并右对齐:
String.format("%10s, world", "Hello");     // 输出 "     Hello, world"
String.format("%8d", 123);                 // 输出 "     123"

// 补齐空格并左对齐:
String.format("%-10s, world", "Hello");    // 输出 "Hello     , world"
String.format("%-8d", 123);                // 输出 "123     "

// 补齐 0 并对齐(仅对数字有效)
String.format("%08d", 123);                // 输出 "00000123"
String.format("%-08d", 123);               // 错误!不允许在右边补齐 0

// 输出最多N个字符
String.format("%.5s", "Hello, world");       // 输出 "Hello"
String.format("%.5s...", "Hello, world");    // 输出 "Hello..."
String.format("%10.5s...", "Hello, world");  // 输出 "     Hello..."

// 输出逗号分隔数字
String.format("%,d", 1234567);               // 输出 "1,234,567"

3. Formato de fecha

Esto es un poco más complicado, pero si desea mezclar números de texto y fechas en cadenas, debería ser más conveniente usar solo un método que combinar DateFormat y NumberFormat.

Primero agregue un conocimiento, es decir, el marcador de posición puede especificar un parámetro en una posición determinada, y el formato es %n . Por ejemplo. por ejemplo, %2. Por ejemplo, d representa el segundo parámetro entero. Tenga en cuenta que n aquí comienza con 1 en lugar de 0.

Al formatear una fecha, se requieren varios marcadores de posición para apuntar al mismo parámetro (para evitar repetir el mismo parámetro varias veces), y como "t" significa fecha y hora, el formato completo es %n$tX, donde X significa tomar que parte del tiempo. Valores opcionales para X como: Y=año; m=mes; d=día; H=hora; M=minuto; S=segundo; L=milisegundo; A=día de la semana (nombre); B=mes nombre
y otras letras.

	// 输出格式为 “Now is         15:04:52, 星期日”
	// 注意 "%1$10tH" 中的 10 同样表示空格补齐 10 位并右对齐
	String.format("Now is %1$10tH:%1$tM:%1$tS, %1$tA", new Date())

Supongo que te gusta

Origin blog.csdn.net/weixin_45336946/article/details/128724789
Recomendado
Clasificación