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

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);

    }

   

   

   

}

tirando o ^ !

vlw

Troque seu pattern por

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

[quote=thiago.correa]Troque seu pattern por

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

Valeu

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:

[quote=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 :slight_smile:
[/quote]

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:

[code]public List 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;
}[/code]

Meu dao está assim:

[code] @SuppressWarnings(“unchecked”)
public List 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;
}[/code]

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.