Incremento com string e integer

4 respostas
Luciano_Lopes

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:

4 Respostas

B

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.

Integer idProduto = new Integer(5);
        
        StringBuffer sb = new StringBuffer(idProduto.toString());
        while (sb.length() < 10) {
            sb.insert(0, "0");
        }
        
        String codigoProduto = sb.toString();
nel

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!

F

System.out.println(new DecimalFormat("[telefone removido]").format(15)); System.out.println(new DecimalFormat("[telefone removido]").format(1500)); System.out.println(new DecimalFormat("[telefone removido]").format(150000));

Mais fácil.

Luciano_Lopes

fre_d:
System.out.println(new DecimalFormat("[telefone removido]").format(15)); System.out.println(new DecimalFormat("[telefone removido]").format(1500)); System.out.println(new DecimalFormat("[telefone removido]").format(150000));

Mais fácil.

Cara,valeu mesmo,muito mais facil :slight_smile:

Criado 20 de outubro de 2009
Ultima resposta 20 de out. de 2009
Respostas 4
Participantes 4