Pessoal estou com um probleminha na formatação de cpf com java.
estou usando uma classe MaskFormatter que me traz parcialmente o que eu quero.
public String format(Object object) throws Exception {
String texto = object.toString();
MaskFormatter mf = new MaskFormatter("###.###.###-##");
mf.setValueContainsLiteralCharacters(false);
return mf.valueToString(texto);
}
no entanto estou precisando inserir zeros a esquerda quando o tamanho do cpf for menor que 11.
alguém ja passou por algo parecido ou tem alguma dica de como resolver isso?
Dai Bukira isso resolverá seu problema… valew
NumberFormat nf = NumberFormat.getIntegerInstance();
nf.setMinimumIntegerDigits(11);
nf.setGroupingUsed(false);
System.out.println(nf.format(1234));
Talvez pudesse adicionar os zeros antes de formatar com a máscara:
Formatter f = new Formatter().format("%011d", 955264);
String s = f.toString();
Onde:
0 -> para preencher com zeros
11 -> o tamanho que deseja
d -> para conversão em dígitos
e o segundo argumento tem de ser dígitos.
Que dá a saída: 00000955264.
Daí converteria para o string utilizando o seu método format…
A[]´s
É, pega o que o mczeferino falou e depois implementa seu código, pois pode dar alguns problemas na hora de formatar com uma quantidade de caracteres inadequada.