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.