Añadir ceros a la izquierda

28/Oct/2009 Java , 9 Comentarios
Programación en Java

Cuando nos comunicamos con sistemas legados nos encontramos muchos casos en los cuales los tamaños de los números son fijos. Y en estos casos hay que rellenar la información con ceros a la izquierda para que el sistema pueda dar una respuesta.

Para estos casos podemos jugar con la clase Formatter, la cual nos ayudará a formatear diferentes elementos, aplicando una cadena de formato y mediante el método .format().

Dos simples líneas de código. La primera será intanciar la clase:

Formatter fmt = new Formatter();

La segunda, aplicar el formato:

fmt.format("%08d",numero);

Lo importante para añadir ceros a la izquierda es el formato a aplicar «%08d». Si entramos en detalle en este formato vemos que en todo formato se identifican las siguientes partes:

%[argument_index$][flags][width]conversion

1. argument_index, es el id del argumento al que queremos aplicar el formato. Esto se aplica si tenemos varios elementos a formatear a la vez.
Por ejemplo:

int numero = 425;
fmt.format("Primer número %1$08d - Segundo número %2$08d ",numero,numero2);

Vemos que el formateador empieza por %1$ o %2$ indicando el elemento (numero o numero2) sobre el que aplica el formato.

2. flags, son las conversiones a aplicar al elemento. Las conversiones dependen del tipo de conversión que efectuemos. La indicada en la parte de conversión. Algunos tipos de flags son: ‘-‘ para la justificación a izquierda, ‘+’ para incluir los signos,… y el que nos interesa en nuestro caso ‘0’ que rellena el tamaño a ceros.

3. width, es el tamaño que le queremos dar al resultado. En nuestro caso le damos un tamaño de 8 dígitos. Y como el número es de 3 dígitos, tendremos 5 ceros a la izquierda

4. conversion, tipo de conversión a realizar: ‘d’ para enteros (nuestro caso), ‘o’ para octales,…

Veamos el código completo:

int numero = 425;

Formatter fmt = new Formatter();
fmt.format("%08d",numero);
	
System.out.println("El numero formateado " + fmt);

Vídeos sobre Java


9 comentarios en “Añadir ceros a la izquierda”

Víctor Cuervo

Jota

Como es eso de la [conversion] ? D: decimales? S: string?. Saludos

Víctor Cuervo

Víctor Cuervo

Buenas Jota,

Tienes las conversiones en la documentación de la clase Formatter de Java – http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

Y correcto S cadenas, D enteros decimales, X enteros hexadecimales,…

Saludos.

Víctor Cuervo

fardul

Gracias Hombre, Muy buen aporte…. Podria uno jugar con trama en Hexa….

Víctor Cuervo

Víctor Cuervo

@Jorge,
Nos alegra mucho que te ayudase el artículo. :-D

Víctor Cuervo

Jorge

Gracias Victor, muy práctica esta función, me resolvió.

Víctor Cuervo

Víctor Cuervo

@Danilo ROjas,
Eso está muy bien. Me alegro que te haya salvado. Espero poder seguir haciéndolo.

Víctor Cuervo

Danilo ROjas

GRACIAS HERMANO ME SALVASTE!

Víctor Cuervo

lineadecodigo

@Alberto,

Para la gente que trabaja desde Java contra sistemas Host, es algo del día a día. :-)

Víctor Cuervo

Alberto

Añadir ceros a la izquierda la verdad es que es bastante útil!

Un saludo

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.