объединитьПоследний не рекомендуется в пользу статического комбинатаПоследний

Используйте java.text.Normalizer, чтобы обработать это для вас.

string = Normalizer.normalize(string, Normalizer.Form.NFD);

Это отделит все знаки акцента от символов. Затем вам просто нужно сравнить каждого персонажа с буквой и выбросить те, которые не являются.

string = string.replaceAll("[^\\p{ASCII}]", "");

Если ваш текст находится в юникоде, вы должны использовать это вместо:

string = string.replaceAll("\\p{M}", "");

Для юникода \\P{M} соответствует базовому глифу, а \\p{M} (нижний регистр) соответствует каждому акценту.

Благодаря GarretWilson для указателя и regular-expressions.info для большого руководства по юникоду.

24
задан Alexander Abakumov 17 August 2018 в 14:05
поделиться