Saltar al contenido

Manera fácil de eliminar acentos de un Unicode string?

Luego de investigar con expertos en el tema, programadores de diversas ramas y profesores dimos con la respuesta al dilema y la compartimos en este post.

Solución:

Finalmente, lo he resuelto usando el Normalizer clase.

import java.text.Normalizer;

public static String stripAccents(String s) 

    s = Normalizer.normalize(s, Normalizer.Form.NFD);
    s = s.replaceAll("[\pInCombiningDiacriticalMarks]", "");
    return s;

Tal vez la forma más fácil y segura es usar StringUtils de Apache Commons Lang

StringUtils.stripAccents(String input)

Elimina signos diacríticos (~= acentos) de un string. El caso no será alterado. Por ejemplo, ‘à’ será reemplazada por ‘a’. Tenga en cuenta que las ligaduras se dejarán como están.

StringUtils.stripAcentos()

Supongo que la única diferencia es que yo uso un + y no un [] en comparación con la solución. Creo que ambos funcionan, pero es mejor tenerlo aquí también.

String normalized = Normalizer.normalize(input, Normalizer.Form.NFD);
String accentRemoved = normalized.replaceAll("\pInCombiningDiacriticalMarks+", "");

Sección de Reseñas y Valoraciones

Si posees alguna duda o capacidad de aclarar nuestro reseña eres capaz de escribir un comentario y con placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *