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);
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
T
thingol
“.” é 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("."),"")...
arm.jr
Valeu!!
peczenyj
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.
// Retroma somente numerospublicStringSomenteNumeros(Strings){Stringresultado="";for(inti=1;i<=s.length();i++){if(!Pattern.matches("([^0-9])+",s.substring(i-1,i))){resultado+=resultado.substring(i-1,i);}}returnresultado;}