Limpar string

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

to validanndo um cnpj

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]

vc pode fazer

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

Nao sei se eh exatamente isso q vc queria.

pessoal estou jsp tem alguma diferença ?

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:

drigo.angelo

obrigador por responder

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

[quote]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?? [/quote]

qual a forma mais aconselhavel de validar este campo por jsp

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…

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

%>

Ahh muito mais simples :stuck_out_tongue:

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:

[code]<%
//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 %>[/code]
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 http://translate.google.com.br/ daí você clica no link que aparecer que ele traduz a página inteira ;D )