Añadir ceros a la izquierda

28/Oct/2009 Java , 9 Comentarios

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:

  1. Formatter fmt = new Formatter();

La segunda, aplicar el formato:

  1. 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:

  1. int numero = 425;
  2. 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:

  1. int numero = 425;
  2.  
  3. Formatter fmt = new Formatter();
  4. fmt.format("%08d",numero);
  5.  
  6. 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. 😀

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

*

*