Переход на Java на aeouu Возможные дубликаты: Удалить диакритические знаки (ń ǹ ň ṅ ņ ņ ṇ ṋ ṉ ̈ ɲ ƞ ᶇ ȵ) из символов Unicode Есть ли способ избавиться от акцентов и преобразовать целую строку в обычные буквы? Как я могу это сделать? Спасибо за помощь Ответ 1 Я думаю, что ваш вопрос такой же: Java - избавление от акцентов и преобразование их в обычные письма Преобразование строки Java в ascii и, следовательно, ответ тоже одинаков: String convertedString = Normalizer .normalize(input, Normalizer.Form.NFD) .replaceAll("[^\\p{ASCII}]", ""); См JavaDoc: Normalizer.normalize(String, Normalizer.Form) JavaDoc: Normalizer.Form.NFD Sun Java Tutorial: API нормализатора) Пример кода: final String input = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ"; System.out.println( Normalizer .normalize(input, Normalizer.Form.NFD) .replaceAll("[^\\p{ASCII}]", "") ); Вывод: Это фанковая строка Ответ 2 Вы можете использовать java.text.Normalizer для разделения базовых букв и диакритики, а затем удалить последнее с помощью регулярного выражения: public static String stripDiacriticas(String s) { return Normalizer.normalize(s, Form.NFD) .replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); } Ответ 3 Во-первых, вы не должны. Эти символы несут особые фонетические свойства, которые нельзя игнорировать. Способом их преобразования является создание Map, содержащего каждую пару: Map<Character, Character> map = new HashMap<Character, Character>(); map.put('á', 'a'); map.put('é', 'e'); //etc.. а затем зациклируйте символы в строке, создав новую строку, вызвав map.get(currentChar)
Ответ 1 Я думаю, что ваш вопрос такой же: Java - избавление от акцентов и преобразование их в обычные письма Преобразование строки Java в ascii и, следовательно, ответ тоже одинаков: String convertedString = Normalizer .normalize(input, Normalizer.Form.NFD) .replaceAll("[^\\p{ASCII}]", ""); См JavaDoc: Normalizer.normalize(String, Normalizer.Form) JavaDoc: Normalizer.Form.NFD Sun Java Tutorial: API нормализатора) Пример кода: final String input = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ"; System.out.println( Normalizer .normalize(input, Normalizer.Form.NFD) .replaceAll("[^\\p{ASCII}]", "") ); Вывод: Это фанковая строка
Ответ 2 Вы можете использовать java.text.Normalizer для разделения базовых букв и диакритики, а затем удалить последнее с помощью регулярного выражения: public static String stripDiacriticas(String s) { return Normalizer.normalize(s, Form.NFD) .replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); }
Ответ 3 Во-первых, вы не должны. Эти символы несут особые фонетические свойства, которые нельзя игнорировать. Способом их преобразования является создание Map, содержащего каждую пару: Map<Character, Character> map = new HashMap<Character, Character>(); map.put('á', 'a'); map.put('é', 'e'); //etc.. а затем зациклируйте символы в строке, создав новую строку, вызвав map.get(currentChar)