Fala feras
Criei um método para gerar uma lista de registros de CPFs e apenas o primeiro número gerado é válido. A idéia, era a pessoa digitar uma quantidade de registros que ela quer gerar e isso ser gerado automaticamente, mas apenas o primeiro registro gerado é válido. Alguém pode me dar uma força pra ver onde eu estou errando?
public String[] gerarCPF(int quantidade){
long semente = 1234567890;
Random random = new Random(semente);
StringBuilder builder = null;
int[] cpf = new int[11];
String vetor[] = new String[65535];
for(int i=0; i<quantidade; i++){
String valor = new String(new Integer(random.nextInt(999999999)).toString());
builder = new StringBuilder(valor);
while(builder.length() < 9){
builder.append("0");
}
char[] cpfChar = builder.toString().toCharArray();
for(int j=0; j<cpfChar.length; j++){
String s = String.valueOf(cpfChar[j]);
cpf[j] = Integer.parseInt(s);
}
vetor[i] = this.gerarCPF(cpf);
}
return vetor;
}
private String gerarCPF(int[] cpf){
StringBuilder sb = new StringBuilder();
this.calcularDigito(cpf, 10);
this.calcularDigito(cpf, 11);
for(int i=0; i<cpf.length; i++){
sb.append(cpf[i]);
if(i == 2 || i == 5){
sb.append(".");
}
if(i==8){
sb.append("-");
}
}
return sb.toString();
}
private void calcularDigito(int[] cpf, int multiplicacao){
int soma = 0;
int posicaoArray = multiplicacao;
int restoDivisao = 0;
for(int j=0; j<cpf.length; j++){
soma += cpf[j] * multiplicacao;
multiplicacao--;
}
restoDivisao = soma % 11;
if(restoDivisao < 2){
cpf[posicaoArray-1] = 0;
} else {
cpf[posicaoArray-1] = 11 - restoDivisao;
}
}