Prezados,
tenho um programa que consulta dados de uma pessoa e exibe os dados retornado em uma parte da JSP… acontece que tenho um campo que deve exibir o código completo (com os zeros - por exemplo: 005624), porém só está exibindo 5624…como estou iniciando agora, gostaria de saber se alguém pode me passar uma dica.
Se o seu conteúdo é do tipo inteiro, converte ele para texto.
Veja este exemplo: http://www.guj.com.br/java/1416-como-converter-inteiro-para-string
Oi Eliane,
Esses dados estão vindo do banco de dados?
Se estiverem vindo, certifique-se de que o tipo da coluna que está guardando este valor seja do tipo varchar. Se for do tipo número (integer, decimal), o banco de dados não salvará os zeros a esquerda. Se tentar salvar, por exemplo, “000002” , ficará salvo apenas “2”.
Certifique-se também que os tipos que vc está utilizando no java também são string.
Se vc tiver certeza que no banco e no java (utilizando um debug ou system.out.println mesmo) os valores estão chegando com 0 na frente, e somente na jsp está vindo sem o zero. Veja se vc não está utilizando, sem querer, alguma biblioteca para conversão de valores.
Bom, esses são os motivos mais óbvios para o seu problema. Qualquer dúvida, pode falar.
Acredito que seja também oportuno relatar um problema se for fazer atribuições com zeros em java para tipos inteiros, pois se você fizer isso:
public class TesteInt {
public static void main(String[] args) {
int valor = 00123;
System.out.println(valor);
}
}
Lembre-se que no caso de obter esses valores como String por exemplo e for fazer algum tipo de cálculo, voce deve tomar cuidado na hora da atribuição, pois diferentemente de no banco que os zeros a esquerda são desprezados, no java isso vai ser processado como um octal…
Então deve-se fazer algo do tipo:
public class TesteInt {
public static void main(String[] args) {
int valor = Integer.valueOf(String.valueOf("00123"), 10);
System.out.println(valor);
}
}
[quote]
Saída: 123
[/quote]
Somente para relatar.
[quote=elianemsantos2]Prezados,
tenho um programa que consulta dados de uma pessoa e exibe os dados retornado em uma parte da JSP… acontece que tenho um campo que deve exibir o código completo (com os zeros - por exemplo: 005624), porém só está exibindo 5624…como estou iniciando agora, gostaria de saber se alguém pode me passar uma dica.[/quote]
Se você tentar formatar um numero será que não ajuda?
ex:
System.out.printf("%02d", 5);
ou
String numeroFormatado = String.format("%02d", 5);
o flag “02” especifica o a quantidade de zeros iniciais, não sei se pode te ajudar…
só usar o DecimalFormat!
System.out.println(new DecimalFormat("000000").format(5624));
Pessoal, muito obrigada pela ajuda de todos… fiz as verificações indicadas pelo Renan, o erro era que o campo no banco de dados não era varchar, eu coloquei como varchar2, e nas JSPs eu alterei as variáveis de long para string. Deu certo. Obrigada.