¿Cómo puedo rellenar un número entero con ceros a la izquierda?
¿Cómo dejaste el pad an int
con ceros al convertir a a String
en java?
Básicamente estoy buscando completar números enteros hasta 9999
con ceros a la izquierda (por ejemplo, 1 = 0001
).
Úselo java.lang.String.format(String,Object...)
así:
String.format("%05d", yournumber);
para relleno de ceros con una longitud de 5. Para salida hexadecimal, reemplace d
con un x
como en "%05x"
.
Las opciones de formato completas están documentadas como parte de java.util.Formatter
.
Digamos que desea imprimir 11
como011
Podrías usar un formateador : "%03d"
.
Puedes usar este formateador de esta manera:
int a = 11;
String with3digits = String.format("%03d", a);
System.out.println(with3digits);
Alternativamente, algunos métodos de Java admiten directamente estos formateadores:
System.out.printf("%03d", a);
Si por algún motivo utiliza Java anterior a 1.5, puede probar con el método Apache Commons Lang.
org.apache.commons.lang.StringUtils.leftPad(String str, int size, '0')
Encontré este ejemplo... Probaré...
import java.text.DecimalFormat;
class TestingAndQualityAssuranceDepartment
{
public static void main(String [] args)
{
int x=1;
DecimalFormat df = new DecimalFormat("00");
System.out.println(df.format(x));
}
}
Probé esto y:
String.format("%05d",number);
Ambos funcionan, para mis propósitos creo que String.Format es mejor y más conciso.
Prueba este:
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat("0000");
String c = df.format(9); // Output: 0009
String a = df.format(99); // Output: 0099
String b = df.format(999); // Output: 0999