Bom Dia a todos!!!
Seguinte pessoal… Preciso trabalhar com mascaras dentro dos meus TextFields… Já implementei a estrutura para add as mascaras:
[code]try{
cpf = new MaskFormatter("###.###.###-##");
cnpj = new MaskFormatter("##.###.###/####-##");
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}[/code]
Depois instanciei:
Está funcionando perfeitamente. Em seguida utilizei esse método para remover a mascara do CPF, antes de salvar no BD Access:
[code]public String removeMask(String cpf) {
String str = cpf;
while (str.indexOf("-") != -1) {
if (str.indexOf("-") != 0) {
str = str.substring(0, str.indexOf("-")) +
str.substring(str.indexOf("-") + 1);
}
else {
str = str.substring(str.indexOf("-") + 1);
}
}
while (str.indexOf(".") != -1) {
if (str.indexOf(".") != 0) {
str = str.substring(0, str.indexOf(".")) +
str.substring(str.indexOf(".") + 1);
}
else {
str = str.substring(str.indexOf(".") + 1);
}
}
return str;
}[/code]
E o método está funcionado muito bem. Porém, gostaria de saber se existe uma forma mais simples para remoção de mascaras, tanto para CPF, CNPJ, DATA,CEP etc…
Já pesquisei métodos pra remover a mascara do CNPJ, mais não achei nada relacionado.
Desde já agradeço!!!
Por favor, não use marcações para coisas como [Dúvida], [Ajuda], [Socorro], [Urgente].
Isso tudo é óbvio.
Por que você criou um método tão complicado, se podia usar o getValue() do JFormattedTextField?
Ele retorna o valor do campo sem a máscara.
se você não utiliza de nenhum framework para desmascarar, o negócio e fazer “na unha” mesmo
[quote=ViniGodoy]Por favor, não use marcações para coisas como [Dúvida], [Ajuda], [Socorro], [Urgente].
Isso tudo é óbvio.
Por que você criou um método tão complicado, se podia usar o getValue() do JFormattedTextField?
Ele retorna o valor do campo sem a máscara.[/quote]
Poderia por favor dar um exemplo usando o getValue() em cima da parte do meu código que postei?
bom, basicamente, se você quer remover a máscara de dados numéricos, é muito simples. pode fazer assim:public String removerMascara(String str){
return str.replaceAll("\\D", "");
}
Lembre-se que só funciona com os tipos que você especificou: CPF, CNPJ, telefone, RG, etc. Porque são números.
Só para explicar um pouco, o “\D” é uma expressão regular que casa com qualquer coisa que não seja um número [0-9], portanto ele vai varrer sua String, e tudo o que não for um número, ele vai substituir por vazio.
[quote=digaoneves]bom, basicamente, se você quer remover a máscara de dados numéricos, é muito simples. pode fazer assim:public String removerMascara(String str){
return str.replaceAll("\\D", "");
}
Lembre-se que só funciona com os tipos que você especificou: CPF, CNPJ, telefone, RG, etc. Porque são números.
Só para explicar um pouco, o “\D” é uma expressão regular que casa com qualquer coisa que não seja um número [0-9], portanto ele vai varrer sua String, e tudo o que não for um número, ele vai substituir por vazio.[/quote]
Obrigado pela resposta.
Funcionou certinho e é bem mais prático. Aproveitando, deixa eu perguntar outra coisa.
Depois quando eu consultar o CPF no BD (Access), ele vai me mostrar na tela os dados referente aquele CPF pesquisado. Quando ele for preencher o campo da data por exemplo, a mascara já vai ta lá… Então gostaria de saber se quando eu fizer a pesquisa pra mostrar os dados na tela, vai ser necessário setar a mascara novamente para aquele dado que vai vir do BD, ou só de meu TextField já possuir a mascara, vai ser preenchido corretamente.
Grato!!!
Cara, sinceramente, faz tanto tempo que não mexo com projetos desktop que não vou saber responder sua pergunta.
Minha sugestão é: Teste, ué! 
[quote=digaoneves]Cara, sinceramente, faz tanto tempo que não mexo com projetos desktop que não vou saber responder sua pergunta.
Minha sugestão é: Teste, ué! :)[/quote]
AhauHAuh… Sem problemas… Ultimamente é o que mais anda fazendo “testando códigos”… Sou iniciante em Java, estou no 5º Período da Eng. da Computação, e vejo que ainda sou muito fraco pra programar… Tô correndo atrás pra tentar melhorar 
Obrigado.