Saída formatada, completando com 0's

Tenho um inteiro, e desejo que ele seja exibido com no mínimo duas casas decimais (completando com 0’s a esquerda.
Por exemplo:
Para o inteiro 5, exibo 05

Em C posso fazer:

printf("%.2d",5);

em java, como ficaria?

valeu

Use o método System.out.printf:

System.out.printf("%.2d",5);
1 curtida

[quote=gabriellm]Tenho um inteiro, e desejo que ele seja exibido com no mínimo duas casas decimais (completando com 0’s a esquerda.
Por exemplo:
Para o inteiro 5, exibo 05

Em C posso fazer:

printf("%.2d",5);

em java, como ficaria?

valeu[/quote]

Em C você não usa “%.2d” e sim “%02d” (note o algarismo zero).

Em Java é exatamente a mesma coisa - use “%02d”.

como não se trata de Java, pode dar diferente no windows… mas aqui no linux funciona das duas maneiras para numeros inteiros. Para numeros reais, dessa maneira eu estaria especificando o numero de casas decimais. Estou enganado?

@edit
me refiro a maneira que eu propus

De fato, de acordo com http://www.cplusplus.com/reference/clibrary/cstdio/printf/ , você está certo.

Entretanto, a maneira “padrão” (ou seja, que não vai fazer ninguém que está acostumado a trabalhar com C precisar procurar no Google se está certo ou não) de indicar que você vai completar um número com zeros à esquerda é com o modificador 0.
É que a precisão tem significados parecidos, mas diferentes para %d, %f e %s.
Pela lógica eu acharia que printf ("%.2d", 9) iria imprimir “9.00”, não “09”, embora saibamos que um inteiro não é promovido para nenhum tipo de ponto flutuante em um “varargs”, tal como o usado pelo printf.

[code]public class CasaAEsquerda {

public static void main(String[] args) {
	Integer num = new Integer (10);
	String strnum = "";
	System.out.println("O numero inteiro digitado =>" + num);
	strnum = "00" + num.toString();
	System.out.println("A string do numero com zeros a esquerda é =>" + strnum);
	
}

}[/code]

[quote=xande.boy][code]public class CasaAEsquerda {

public static void main(String[] args) {
	Integer num = new Integer (10);
	String strnum = "";
	System.out.println("O numero inteiro digitado =>" + num);
	strnum = "00" + num.toString();
	System.out.println("A string do numero com zeros a esquerda é =>" + strnum);
	
}

}[/code][/quote]

faz sentido para um numero pequeno de 0’s

@edit

aliás, se eu entendi bem, esse código vai adicionar dois 0 a todos os numeros não?

Paz para todos. Muito interessante a questão levantada neste topico, pois esta semana me deparei com a necessidade de resolver um problema semelhante. Num sistema de cadastro, no formulario , mas especificamente um JTextField onde é mostrado o ID , o cliente me pediu para mostrar o numero do registro com um 0 a esqueda, e ainda estava pensando em como poderia fazer isso. Sera que algum amigo do forum poderia esplanar um pouco mais , para eu ter uma ideia do que fazer?

Use o String.format

int numero = 1;
String msg = String.format("%02d", numero);
System.out.println(msg);
//Retorna 01

numero = 10;
msg = String.format("%02d", numero);
System.out.println(msg);
//Retorna 10

Estou mostrando o numero usando:

        int codigo = c.buscarCodigoUltimoAtendimento() +1;
         
         String msg = String.format("%02d", codigo); 

         pront.setText(msg);

mas não funcionou, não da erro, mas não mostra o numero com zero a esquerda.

qual o valor do codigo que esta vindo?
pq esse 02 vai pegar sempre com 2 casas, se tiver 28, nao vai vir 028, e sim somente 28

Seia um numero com 8 digitos…
Então eu deveria usar “%08d”?

A ficha caiu, :lol: , funcionou, vlw pela paciência.