Ola pessoal,
Estou criando um método para validação de CPF, o método funciona tranquilo sem uma formatação exemplo (21729598803), adicionei a formatação e fiz um teste para retirar eles na validação mas estou encontrando um erro.
public class ValidaCPF {
	
	int soma, resultado1, resultado2;
	
	public boolean validar(String cpf) {
		
		String[] strCpf = new String[11];
		int[] numCpf = new int[11]; 
		
		for (int i = 0; i < cpf.length(); i++) {
		    
			  if ( (cpf.charAt(i) != '-') | (cpf.charAt(i) != '.')) { <--Nao funciona
		    
   		       strCpf[i] = cpf.charAt(i) + "";
		       numCpf[i]  = Integer.parseInt(strCpf[i]);
		   }
			
		}
		if ( cpf.length() == 14) {
			
			  soma = 10 * numCpf[0] + 9 * numCpf[1] + 8 * numCpf[2] + 7 * numCpf[3] + 6 * numCpf[4] + 5 * numCpf[5] + 4 * numCpf[6] + 3 * numCpf[7] + 2 * numCpf[8];
			  soma -= (11 * ((soma / 11)));
			
			  if ( soma == 0 || soma == 1) {
				resultado1 = 0;
			  }
			  else {
				resultado1 = 11 - soma;
			  }
			
			  if ( resultado1 == numCpf[9]) {
			  
			    soma = 11 * numCpf[0] + 10 * numCpf[1] + 9 * numCpf[2] + 8 * numCpf[3] + 7 * numCpf[4] + 6 * numCpf[5] + 5 * numCpf[6] + 4 * numCpf[7] + 3 * numCpf[8] + 2 * numCpf[9];
			    soma -= (11 * ((soma / 11)));
			  
			    if ( soma == 0 || soma == 1) {
				  resultado2 = 0;
			    }
			    else {
				resultado2 = 11 - soma;
			    }
				
			   }
			
		   }
		
		if ((resultado1 == numCpf[9]) && (resultado2 == numCpf[10])) {
			
			System.out.println("CPF Valido");
			return true;
		}
		
		else {
			System.out.println("CPF Invalido");
			return false;
		}
	
	}
	
	public static void main(String[] args) {
		
		ValidaCPF validar = new ValidaCPF();
		validar.validar("217.295.988-03");
		
	}
}
Como posso fazer para retirar os caracteres que nao sao números?
Obrigado