Depois de algum tempo sem postagens, espero eu poder iniciar aqui uma sequência de posts mesmo que não muito extensos que sejam pequenos mas sempre procurando compartilhar idéias e soluções para problemas do dia-a-dia.
Um problema bastante comum é o tratamento de carácteres especiais em Strings. Principalmente quando fazemos integrações de informações ou aceitamos Strings vindas de outro meio que não sejam nossas rotinas, por exemplo no upload de um arquivo para um site, onde o nome do arquivo pode conter carácteres inválidos para o padrão de carácteres da aplicação.
Usando o Java temos um recurso nativo na clase java.text.Normalizer que permite a conversão de carácteres para o padrão Unicode.
1: import java.text.Normalizer;
2:
3: /**
4: * @author Fabio J. Walter
5: * @since 03/08/2011
6: */
7: public class Teste {
8:
9: public static void main(String[] args) {
10: String original = "José, Peão, Cão, çàs, ópera, Nuñes;
11: String normalizada = Normalizer
12: .normalize(original, Normalizer.Form.NFD).replaceAll(
13: "\\p{InCombiningDiacriticalMarks}+", "");
14: System.out.println("Original = " + original);
15: System.out.println("Normalizada = " + normalizada);
16: }
17: }
O método da classe Normalizer que executa a normalização da String é o metodo normalize(); que recebe como argumentos a String a ser normalizada e a Forma Unicode de normalização.
Na sequência da normalização removemos utilizando um Pattern que retira os “?” deixados em cada posição onde um caráctere foi normalizado para que então possa ser realizada a comparação indiferente do padrão de caráctere utilizado na origem ou no destino.
Justamente o que estava vendo hoje! Vai ajudar bastante!!
ResponderExcluirEste comentário foi removido por um administrador do blog.
ResponderExcluir