Como remover acentuação no Java
Neste tutorial veremos como remover acentuação de palavras no Java de forma simples utilizando a classe Normalizer.
Introdução
Este tutorial tem como principal objetivo demonstrar como podemos remover acentuação de Strings utilizando o Java.
Em muitas ocasiões durante o desenvolvimento encontramos situações onde precisamos tratar as informações fornecidas pelo usuário antes de inseri-las no banco de dados.
Um bom exemplo é quando a necessidade de retirar a pontuação de alguns palavras seja para comparação ou inserção na base de dados.
Pensando nesta situação implementei este tutorial, onde vou mostrar como é fácil remover acentuação de Strings sem a necessidade de bibliotecas externas, usaremos apenas a classe Normalizer
que está presente no pacote java.text
fornecido pelo Java.
Requisitos para execução deste tutorial:
- Java 8+;
Removendo acentuação de palavras no Java
Vamos iniciar a implementação do nosso tutorial, antes de tudo devemos importar a classe Normalizer
do pacote java.text
para isso basta importar a classe como mostrado abaixo:
import java.text.Normalizer;
Após importar a classeNormalizer
vamos utilizar a função normalize()
da classe Normalizer
junto com a função replaceAll()
, passando como parâmetro a expressão regular [^\\p{ASCII}]
, isso removerá todos acentos da frase que foi passada.
Logo abaixo segue o código que implementei neste tutorial, é simples exemplo de como podemos utilizar a classe Normalizer
:
package utils;
import java.text.Normalizer;
public class RemoverAcentosNormalizer {
public static void main(String args[]){
String fraseComAcento = "Removendo acentuação com Java";
String fraseSemAcento = Normalizer.normalize(fraseComAcento, Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "");
System.out.println("-- Frase com acento --");
System.out.println(fraseComAcento);
System.out.println("-- Frase sem acento --");
System.out.println(fraseSemAcento);
}
}
Uma breve explicação do código acima,
- Na primeira linha dentro do método
main
, defino uma variável chamada (fraseComAcento
) com uma frase contendo acentuação; - Logo após na segunda linha defino uma variável chamada (
fraseSemAcento
) e atribuo a ela o valor de retorno do tratamento realizado com a função (normalize
) da classeNormalizer
; - Nas ultimas linhas dentro do
main
, imprimo as informações contidas nas variáveis (fraseComAcento
efraseSemAcento
);
Ao executarmos código acima será gerado na console da ide
as informações abaixo:
run:
-- Frase com acento --
Removendo acentuação com Java
-- Frase sem acento --
Removendo acentuacao com Java
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
Este foi simples e rápido tutorial demonstrando como é simples e rápido remover acentuação de uma palavra utilizando o Java, isto é muito útil para tratar as informações que recebemos de inputs antes de salvar a informação em um banco de dados.