Limpar CNPJ, duvida replaceAll

Tenho um CNPJ : 00.000.000/0001-20
Queria tirar os números depois da barra " / " .
test.substring(0,test.lastIndexOf("/")).replaceAll(".", “”); , Deu certo.
[b]Agora queria tirar o ponto " . “, coloquei replaceAll(”.", “”), rodei e não apareceu nada.

Fiz algo de errado?![/b]

String test = "00.000.00/0001-24"; String x = test.substring(0,test.lastIndexOf("/")); String y = x.replaceAll(".", ""); System.out.println(y);

Fez, tente isso

String test = "00.000.00/0001-24"; String x = test.substring(0,test.lastIndexOf("/")); String y = x.replaceAll("\.", ""); System.out.println(y);
A explicação é relativamente simples, o ponto é um metacaractere utilizado em expressões regulares para “casar” expressões, ou seja, o ponto ele aceita qualquer combinação, por isso que ele substituia tudo por nada :smiley:

“.” é um caracter especial para expressões regulares. Use o “” para “escapar” o caracter, ou Pattern.quote para forçar a não entender como uma expressão regular.

.... replaceAll("\.", "") ...

ou então (a partir do Java 5)

 .... replaceAll(Pattern.quote("."), "") ...

Valeu!!

Existem varias formas de fazer isso, por exemplo:

String test = "00.000.00/0001-24"; test.split("/")[0].replaceAll("\D","")

onde \D é o mesmo que \D – uma expressão regular que casa com qualquer coisa que não seja um número.

// Biblioteca usada
import java.util.regex.Pattern;

  // Retroma somente numeros
    public String SomenteNumeros(String s){
      String resultado = "";
      for(int i=1;i<=s.length();i++){
        if (!Pattern.matches("([^0-9])+",s.substring(i-1,i)))
        {
            resultado +=resultado.substring(i-1,i); 
        }
      }
     return resultado;    
    }