Ir ao conteúdo

Posts recomendados

Postado

Boa noite,

 

Eu uso esse código abaixo para remover a acentuação porém ele também remove o cecedilha. Sabem como fazer para não remover o cecedilha?

public static String removerAcentos(String str) {
	    return Normalizer.normalize(str, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "");
	}

 

Postado

Gramaticalmente falando o cedilha não é acento. Acentos são sinais diacríticos que indicam um destaque em uma vogal, sendo eles o agudo, grave e circunflexo apenas.

 

O acentos fazem parte de um conjunto maior chamado de sinais diacríticos, os quais incluem o cedilha, trema e til, entre outros.

 

A função que você está indicando realiza a decomposição de um texto conforme uma regra Unicode, no caso da nossa língua separa as letras de seus sinais diacríticos, e depois remove qualquer coisa que não seja pertencente a tabela ASCII (não é o melhor regex para esta função!!).

 

Não sei qual o seu objetivo final, mas se quiser remover apenas os acentos, conforme a sua pergunta, a forma que conheço é a criação de uma tabela de equivalência, e a substituição dos caracteres um a um.  Mais ou menos assim:

1. crie um array de caracteres a serem substituídos, ex. {"Á", "á", "É", "é", ...}

2. crie um array de caracteres de substituição, ex. {"A", "a", "E", "e", ...}

3. percorra o array 1 substituindo todas as suas ocorrências na string a ser tratada pelo equivalente no array 2.

 

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!