Limpar string

8 respostas
J

pessoal qual a função que limpa caracters especiais de uma string

to validanndo um cnpj

8 Respostas

drigo.angelo
String cnpj= JOptionPane.showInputDialog( ... ... );
//Remove tudo que não for letra a-zA-Z
cnpj = cnpj.replaceAll("\W", "");

//Remove tudo que não for digito 1-9
cnpj = cnpj.replaceAll("\D", "");

[edit, complementando]
De uma olhada em http://download.oracle.com/javase/tutorial/essential/regex/intro.html, sobre Regex, talvez possa te ajudar melhor :slight_smile:
[/edit]

Basilio

vc pode fazer

String s = ".,<>!@#$%*()";
s.replaceAll("[^QWERTYUIOPASDFGHJKLZXCVBNM1234567890]", "");

Nao sei se eh exatamente isso q vc queria.

J

pessoal estou jsp tem alguma diferença ?

drigo.angelo

não, pode usar tranquilo (apesar de ser desaconselhavel ficar escrevendo códigos java dentro da jsp…

mas porque voce quer manipular um campo na jsp??

se for pra ‘‘limpar’’ dinamicamente, a medida que o usuario for digitando, pesquise sobre mascaras em jquery, javascript :smiley:

J

drigo.angelo

obrigador por responder

nao gosto de fazer validações no lado cliente prefiro no servidor

não, pode usar tranquilo (apesar de ser desaconselhavel ficar escrevendo códigos java dentro da jsp…
mas porque voce quer manipular um campo na jsp??

qual a forma mais aconselhavel de validar este campo por jsp

drigo.angelo

Concordo que a validação no lado do servidor é bem mais importante que a do lado do cliente =]

Manipular a String na jsp quebra um pouco a estrutura MVC em que as jsp’s ficam apenas para visualização, tipo assim:

Voce tem uma página jsp com um formulário de cadastro de um cliente, nela o usuario vai informar os dados (cnpj, nome, end, etc etc…)

A jsp vai enviar esses dados para um servlet que vai mandar para as classes de modelo, e nessa classe de modelo que você faz a validação :smiley:

Acho que assim fica mais separado, mas também depende de como está o projeto, quais padrões, tecnologias são utilizadas, etc…

J

drigo.angelo

eu gostaria de esta fazendo desta forma a estrutura, so que nao tenho conhecimento para isto ainda, estou abituado com php ja li muito java estou colocando a mao na massa so estou meio perdido quando a forma de estruturar este projetinho para estudo pessoal

o que eu tenho e uma tabela em html e outra em jsp para validar os campos e cadastro no banco de dados

vo postar o codigo aqui por favor me oriente, nao mande eu ler aquela apostila da caelum (caelum-java-web-fj21) que deixa eu mas confuso ainda.

sei que o forum e para tirar duvidas :oops:

vamos la
vo colocar so um pedaço do html

<td width="55">CNPJ:</td>
        <td colspan="5"><input type="text" name="cnpj" id="cnpj"/></td>
      </tr>
      <tr>
        <td>Nome:</td>
        <td colspan="5"><input name="nome" type="text" id="nome" size="92" /></td>

jsp que recebe do form

<%
//recebe o valor digitado no campo usuario
String cnpj = request.getParameter("cnpj");
String nome = request.getParameter("nome");

//validar cnpj

%>
drigo.angelo

Ahh muito mais simples :P

Como é só para estudo pessoal, não tem problema, nos seus próximos projetos tente fazer algo mais estruturado em camadas, que aí você vai acostumando e pegando o jeito :!:

Mas então, aquele código que eu coloquei é da classe String mesmo, o que significa que você pode colocar diretamente na sua jsp, dentro do scriptlet (o código java)..

Daí vai depender do que você quer tirar/validar da sua String, por exemplo, como é um cnpj, se sua aplicação for trabalhar com cnpj somente números, você pode facilmente remover tudo que não for número da String, ex:

<%  
 //recebe o valor digitado no campo usuario  
 String cnpj = request.getParameter("cnpj");  
 String nome = request.getParameter("nome");  
   
 //validar cnpj  
 cnpj = cnpj.replaceAll("\D", ""); //Remove tudo que não for números
   
 %>  
nome = <%= nome %>
cnpj validado = <%= cnpj %>
Neste exemplo, se o usuário digitasse no nome 'Rodrigo de Castro' e no cnpj '123.456.asdfg.789', a jsp iria mostrar: nome = Rodrigo de Castro cnpj validado = 123456789 <-- os pontos e as letras sumiram ^^

mas se você quiser exibir uma mensagem de erro, caso existam letras, por exemplo, você vai ter que estudar regex, é a maneira mais fácil de fazer isso, e tem no link que eu pus no primeiro post (tá em inglês, se você não souber inglês, coloca no google tradutor [url]http://translate.google.com.br/[/url] daí você clica no link que aparecer que ele traduz a página inteira ;D )

Criado 24 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 8
Participantes 3