Olá pessoal, eu estou com o seguinte problema.
em Java existe alguma maneira de criar um int com zero a esquerda ?
por exemplo:
se eu criar uma variável int numero = 00; e depois fizer numero = numero + 1 e printar isso na tela, ele vai me mostrar 1.
mas eu queria que ele me mostrasse 01.
existe alguma maneira de criar esse numero e formata-lo para ficar sempre com no minimo dois dígitos ?
“printar” dói nos ouvidos. Use String.format ("%02d", numero) se quiser criar uma String contendo zeros à esquerda e tendo 2 posições.
Exemplo:
System.out.printf ("O numero com 5 posicoes eh %05d %n", numero);
Não se esqueça de incluir o zero depois do %.
mto obrigado pela atenção entanglement.
mas meu problema não esta em “printar” o numero e sim em soma-lo mas sempre com o zero a esquerda junto !
como por exemplo, mandar para um select no BD com dia atual +1, no formato dd-mm-yyyy.
Se eu converter o dia pra int e fizer dia + 1, ele vai me retornar apenas 1 digito =/.
mas o formato que o banco precisa pra data é com dois digitos no dia.
será que eu consegui me expressar ?
Entendi, mas contas com datas não devem ser feitas como se datas fossem string. Você tem de fazer contas com datas usando a classe java.util.Calendar.
Acho que tem um monte de exemplos aqui no GUJ indicando como se deve usar o Calendar para adicionar um dia.
você já ouviu falar do cara que é um “zero à esquerda”? aquele cara que não vale nada?
o seu problema é justamente esse, um int nunca vai ter um zero a esquerda, simplesmente porque não faz sentido ter, o zero à esquerda não vale nada.
se você realmente precisa desse formato, faça suas operações e depois formate como quiser.
De qualquer maneira, para “printar” (argh) uma data para o banco, o aconselhável é usar PreparedStatement em vez de criar a string SQL na mão. Aí você manda a data e o PreparedStatement se vira pra mandar o formato correto para o banco, que na verdade gosta mais de receber os dados binários que o dado em texto.
huuuuuuum, obrigado pela atenção de todos, esse forum é realmente mto bom.
vou procurar saber mais sobre esse java.util.Calendar. e sobre esse PreparedStatement 
Sei. O que ocorre no dia 31/08? O dia posterior é 32/08? Fazer contas com calendário é sempre chato, e deve ser deixado por conta do Java.
Dentro de um int (ou Integer) é guardado apenas o valor numérico, e ele não tem zeros à esquerda.
É a mesma coisa com seu salário. O sistema que paga seu salário não guarda os zeros à esquerda.
Eu já vi uma tirinha que era assim: alguém se gabava que seu salário tinha 5 dígitos.
Quando perguntaram quanto era o salário dele, ele simplesmente disse:
$ 00.999,99
Bom, aproveitando aqui a conversa, ainda estou com problema …
eu preciso pegar um string que vem do BD, ela vem assim MMyyyy (mas consigo facilmente adicionar um caracter que faz a separação do dia pro ano, como um “-” ou “/”).
By the way, o problema é como converter essa string em um JCalender para que possa adicionar um mes =/.
Você tem uma string que representa um mês - mas tanto java.util.Calendar quanto java.util.Date representam instantes no tempo (dia/mês/ano, opcionalmente hora/minuto/segundo).
Se você usar, por exemplo, “122012”, ele representaria 1/12/2012 00:00:00?
Isso é OK para você?
Se não for OK, melhor usar o Joda-Time (que melhor representa esse tipo de dados).