Añadir ceros a la izquierda
Cuando nos comunicamos con sistemas legados (o “legacy” si quieres utilizar el anglicismo), es habitual encontrar campos numéricos con una longitud fija. En esos casos debemos completar el valor con ceros a la izquierda para que el sistema pueda procesarlo correctamente.
Para resolverlo podemos utilizar la clase Formatter, que permite aplicar una cadena de formato mediante el método .format().
Usar la clase Formatter
Sección titulada «Usar la clase Formatter»Primero creamos una instancia de Formatter:
Formatter fmt = new Formatter();Después aplicamos el formato al número:
fmt.format("%08d", numero);Entender el formato para añadir ceros
Sección titulada «Entender el formato para añadir ceros»La parte esencial del ejemplo es el patrón %08d. La estructura general de una cadena de formato es:
%[argument_index$][flags][width]conversion-
argument_indexIdentifica el argumento al que se aplicará el formato cuando hay varios valores. Por ejemplo:
int numero = 425;fmt.format("Primer número %1$08d - Segundo número %2$08d",numero,numero2);Los indicadores
%1$y%2$señalan, respectivamente, el primer y el segundo argumento que se deben formatear. -
flagsLos indicadores modifican la forma en la que se presenta el valor. Algunos de los más habituales son:
-: justifica el contenido a la izquierda.+: incluye el signo del número.0: completa con ceros hasta alcanzar la longitud indicada.
-
widthDefine la longitud total del resultado. En este ejemplo usamos un ancho de ocho dígitos. Como
425tiene tres dígitos, se añaden cinco ceros a la izquierda. -
conversionIndica el tipo de conversión que se realizará:
d: número entero decimal.o: número entero octal.
Código completo
Sección titulada «Código completo»El ejemplo completo queda así:
int numero = 425;
Formatter fmt = new Formatter();fmt.format("%08d", numero);
System.out.println("El número formateado es " + fmt);El resultado será:
El número formateado es 00000425Descarga el código de Añadir ceros a la izquierda
Descubre cómo Añadir ceros a la izquierda en Java con Formatter y el patrón %08d para generar números de longitud fija, fiable para sistemas legados.