Come posso imbottire un intero con degli zeri a sinistra?

Come si fa a riempire un int con degli zeri quando si converte in una stringa in java?

In pratica sto cercando di imbottire gli interi fino a 9999 con gli zeri iniziali (ad esempio 1 = 0001).

Soluzione

Usate java.lang.String.format(String,Object...) come questo:

String.format("%05d", yournumber);

per lo zero-padding con una lunghezza di 5. Per l'output esadecimale sostituite la d con una x come in "%05x".

Le opzioni di formattazione complete sono documentate come parte di java.util.Formatter.

Commentari (11)

Se per qualche motivo usate Java pre 1.5, allora potete provare con il metodo Apache Commons Lang

org.apache.commons.lang.StringUtils.leftPad(String str, int size, '0')
Commentari (0)

Ho trovato questo esempio... Lo testeremo...

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));
    }
}

Testato questo e:

String.format("%05d",number);

Entrambi funzionano, per i miei scopi penso che String.Format sia migliore e più succinto.

Commentari (4)