Remover caracteres especiais (mas deixar espaços em branco)

5 respostas
R

Olá,

Peguei este código para retirar caracteres especiais de um String, porém ele também está retirando espaços em branco. Como eu altero o pattern para deixar os espaços em branco do jeito que estão?

public class CharacterStripper

{

    public static void main(String[] args)

    {

        String testString = "120938H>?<E)(*l)(*L192L731O````W=-0O23423R2093820342L?><?>????D";

        String pattern = "[^A-Z]";

       

        String strippedString = testString.replaceAll(pattern, "");

        System.out.println("Original String is:         "+testString);

        System.out.println("After Replacing Characters: "+strippedString);

    }

   

   

   

}

5 Respostas

U

tirando o ^ !

vlw

T

Troque seu pattern por

String pattern = “[^A-Z^\s]”;

R

thiago.correa:
Troque seu pattern por

String pattern = “[^A-Z^\s]”;

Valeu

J

mais uma forma:

public String removerCaracteresEspeciais(String string) {
        string = Normalizer.normalize(string, Normalizer.Form.NFD);
        string = string.replaceAll("[^\\p{ASCII}]", "");
        return string;
    }

bem parecido, mas mais enxuto, eu acho :slight_smile:

K
jessetsilva:
mais uma forma:
public String removerCaracteresEspeciais(String string) {
        string = Normalizer.normalize(string, Normalizer.Form.NFD);
        string = string.replaceAll("[^\\p{ASCII}]", "");
        return string;
    }

bem parecido, mas mais enxuto, eu acho :)

Mano, me dá um help!!! Estou com problema ao utilizar o normalizer. Eu preciso dele para fazer uma busca no banco. Meu método de busca está assim:
public List<Funcionario> getFuncionariosGenerico() {
		Session session = HibernateUtil.currentSession();
		FuncionarioDao funcionarioDao = new FuncionarioDao(session,
				Funcionario.class);

		List<Funcionario> lista = funcionarioDao.pesquisaFuncionarios(
				this.funcionario.getNome(), this.funcionario.getCpf(),
				this.funcionario.getRg());

		return lista;
	}
Meu dao está assim:
@SuppressWarnings("unchecked")
	public List<Funcionario> pesquisaFuncionarios(String nome, String cpf,
			String rg) {
		Criteria c = session.createCriteria(Funcionario.class);

		List<Funcionario> results = new ArrayList<Funcionario>();
		c.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE));
		c.add(Restrictions.like("cpf", cpf, MatchMode.ANYWHERE));
		c.add(Restrictions.like("rg", rg, MatchMode.ANYWHERE));
		results = (List<Funcionario>) c.list();
		return results;
	}

Teria como eu implementar o normalizer nessa minha busca?? ou eu não altero este método e faço o método do normalizer a parte para rederizar ele na pesquisa na minha jsf??

Valeu.

Criado 16 de abril de 2010
Ultima resposta 12 de ago. de 2010
Respostas 5
Participantes 5