Incremento com string e integer

Pessoal,tenho uma tabela de produtos com um campo varchar e gostaria que ele armazenasse o valor da chave primaria mais “000000000”,tipo,se o id do produto é 1 então ficaria “000000001”,o problema é que o campo id é integer e o campo código do produto é varchar,como faço para o java pegar esses 9 zeros e incrementar o valor inteiro neles?Tentei aqui mas ele só adiciona,ai ficam 10 caracteres :frowning:

Olá, utilize este código. Independente do número de caracteres do id (5, 10, 500, …), sempre será incrementado zeros à esquerda até completar 10 caracteres para o código. O valor 5 setado para o idProduto é somente um exemplo. No lugar dele você coloca o id que vem do banco.

[code] Integer idProduto = new Integer(5);

    StringBuffer sb = new StringBuffer(idProduto.toString());
    while (sb.length() < 10) {
        sb.insert(0, "0");
    }
    
    String codigoProduto = sb.toString();[/code]

Bom dia.

Então, estou com uma pressa daquelas! Mas vai a dica.
Você pode dizer o tamanho fixo do seu dia, supondo, 10 caracteres. Se tens um int de tamanho 3 então precisaria completar com 7 zeros, correto?

Se este for o caso, pode usar o String Util´s da apacha, o common. Se não me engano não tem necessidade de baixar nenhum .jar, mas se precisar e quiser faça isso. Nele, contém um método chamado leftpad() e rightpad() que completa espaços a esquerda e a direita e se não me falha a memória acho que ele aceita que complete com 0´s, enfim, da uma olhada nessa api que talvez ajude você.

Abraços!

System.out.println(new DecimalFormat("0000000000").format(15)); System.out.println(new DecimalFormat("0000000000").format(1500)); System.out.println(new DecimalFormat("0000000000").format(150000));

Mais fácil.

[quote=fre_d]System.out.println(new DecimalFormat("0000000000").format(15)); System.out.println(new DecimalFormat("0000000000").format(1500)); System.out.println(new DecimalFormat("0000000000").format(150000));

Mais fácil.[/quote]

Cara,valeu mesmo,muito mais facil :slight_smile: