Validar CPF

Olá, estou com um problema em validar um cpf em um exemplo que peguei na web…é o seguinte…esta funcionando perfeitamente, mas se no cpf eu digitar numeros iguais…ele fala q o cpf é valido…ou seja…se eu digitar 22222222222 ele fala q existe…como eu corrijo isso? segue abaixo o codigo:

import java.util.*;

/**
* Classe com método para validação de CPF
*
* Pode ser utilizada livremente e modificada para se integrar à sistemas mais complexos.
*
* @version 1.0
* @since   05/06/2003
*/
public class CPF {

   /** Realiza a validação do CPF.
    *
    * @param   strCPF número de CPF a ser validado
    * @return  true se o CPF é válido e false se não é válido
    */
   static public boolean CPF (String strCpf )
   {
      int     d1, d2;
      int     digito1, digito2, resto;
      int     digitoCPF;
      String  nDigResult;

      d1 = d2 = 0;
      digito1 = digito2 = resto = 0;

      for (int nCount = 1; nCount < strCpf.length() -1; nCount++)
      {
         digitoCPF = Integer.valueOf (strCpf.substring(nCount -1, nCount)).intValue();

         //multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.
         d1 = d1 + ( 11 - nCount ) * digitoCPF;

         //para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.
         d2 = d2 + ( 12 - nCount ) * digitoCPF;
      };

      //Primeiro resto da divisão por 11.
      resto = (d1 % 11);

      //Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
      if (resto < 2)
         digito1 = 0;
      else
         digito1 = 11 - resto;

      d2 += 2 * digito1;

      //Segundo resto da divisão por 11.
      resto = (d2 % 11);

      //Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
      if (resto < 2)
         digito2 = 0;
      else
         digito2 = 11 - resto;

      //Digito verificador do CPF que está sendo validado.
      String nDigVerific = strCpf.substring (strCpf.length()-2, strCpf.length());

      //Concatenando o primeiro resto com o segundo.
      nDigResult = String.valueOf(digito1) + String.valueOf(digito2);

      //comparar o digito verificador do cpf com o primeiro resto + o segundo resto.
      return nDigVerific.equals(nDigResult);
   }


   public static void main(String[] args) {
      System.out.println( CPF("04624193806") );
   }

}

De acordo com o algoritmo do CPF, esse número é perfeitamente válido.
Se é possível existir um CPF assim, eu não sei, mas caso não queira aceitá-lo, teste se o CPF informado não é igual a 22…22, 33…33, etc.

Vc precisa verificar antes se os numeros sao iguais mesmo. Coloque varios ifs para verificar todas as 10 possibilidades: tudo 0 até tudo 9.

Ahh você não está utilizando a BrazilUtils ? não perca tempo. Ótimo suporte a validação de CPF/CNPJ.

https://brazilutils.dev.java.net/

[quote=“JavaPlayer”]Ahh você não está utilizando a BrazilUtils ? não perca tempo. Ótimo suporte a validação de CPF/CNPJ.

https://brazilutils.dev.java.net/[/quote]

Off: Eehhehe não da pra perder a oportunidade mesmo! ehehheheh