Olá ,
tenho a seginte situação
int numero = 40
e queria criar uma String numeroformatado igual 000000040
alguem poderia me ajudar …
Olá ,
tenho a seginte situação
int numero = 40
e queria criar uma String numeroformatado igual 000000040
alguem poderia me ajudar …
Bom…
Uma idéia é primeiro verificar a quantidade de caracteres voce quer…por exemplo 10:
int valor = 40
StringBuffer sb = new StringBuffer();
for(x=0; x<(10-String.valueOf(valor).lengh);x++){
sb.append("0");
}
sb.append(valor);
System.out.println(sb.toString());
jovem,
vc tera que criar um método para preencher.
public class A {
public static void main(String[] args) {
String i = "40";
String temp="";
for(int j = 0; j < (10 - i.length()) ; j++){
temp += "0";
}
temp += i;
System.out.println(temp );
}
}
OBS: O exemplo acima está melhor desenvolvido…
Faça assim:
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumIntegerDigits(9);
System.out.println(nf.format(numero));
Blz? Flw! :thumbup:
vamos supor que n e o numero de caracteres que tenque ser preenchidos e x e o valor,
exemplo precisa de 8 caracteres para preencher o campo entao: n = 8, x = 40
o que seria: "00000040"
public String preencheZeroAEsquerda(int numero, int quantidade) {
String s = Strng.valueOf(numero);
if (s.length() < quantidade) {
int zeros = s.length() - quantidade;
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < quantidade; i++) {
buffer.append("0");
}
buffer.append(s);
s = buffer.toString();
}
return s;
}
não testei… mas acho q funciona…
Cara… como vocês complicam! :shock:
Vale a pena que esses digitos devem vir a esquerda…
:shock:
import java.text.NumberFormat;
public class A {
public static void main(String[] args) {
int numero = 10;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumIntegerDigits(9);
System.out.println(nf.format(numero));
}
}
000.000.010
Mais bonito mesmo!!
Acho que consome menos memória se usar um StringBuilder a dar append sempre.
Mero detalhe! :mrgreen:
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumIntegerDigits(9);
System.out.println(nf.format(40).replace(".", ""));
Olha a Gambi!!!
[quote=von.juliano]Mero detalhe! :mrgreen:
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumIntegerDigits(9);
System.out.println(nf.format(40).replace(".", ""));
[/quote]
POG das bonitas, hein?
Pô, não falem assim… eu prefiro “formas alternativas para solucionar um problema” :lol:
Véi, essa foi a gambira do dia. Vou até colocar la no topico das Pogs rsrsrsrs.
int numero = 40;
String str = String.format ("%09d", numero);
Não se esqueça do “0” depois do “%”. É ele que põe os zeros à esquerda.
thingol,
O d nesse caso é porque ele é um Inteiro correto?
Teria como fazer isso se ele fosse uma String?
Por que é que você quer imprimir uma string (como “José”) com zeros à esquerda?
Se a String for garantidamente numérica, então você pode usar assim:
String valor
int valorInteiro = Integer.parseInt(valor,10);
E daí utilizar o método que o thingol falou.
http://www.guj.com.br/posts/list/96482.java#518126
No link acima, no caso de ser String, as duas últimas funcionam. É só trocar o flag ‘d’ por ‘s’.