Java 有可能为那些非英语字符获取变音吗?
在java中,可以将非英语字符转换为英语字符 例如,我想要:Java 有可能为那些非英语字符获取变音吗?,java,javascript,metaphone,Java,Javascript,Metaphone,在java中,可以将非英语字符转换为英语字符 例如,我想要: Zdeborová --> Zdeborova Krząkała --> Krzakala Sr´amek --> Sramek 以此类推 当我尝试下面的方法时 String t1 = Normalizer.normalize("Krząkała", Normalizer.Form.NFD); String t2 = t1.replaceAll("[^\\p{AS
Zdeborová --> Zdeborova
Krząkała --> Krzakala
Sr´amek --> Sramek
以此类推
当我尝试下面的方法时
String t1 = Normalizer.normalize("Krząkała", Normalizer.Form.NFD);
String t2 = t1.replaceAll("[^\\p{ASCII}]", "");
String t3 = t2.replaceAll("\\p{M}", "");
或
结果他们都给了Krz?ka?a
我可以在oracle sql中简单地执行此过程:
select
REGEXP_REPLACE(replace(convert(trim(upper('Krząkała')), 'us7ascii'), '_', ' '), '[^A-Z ]', '') std
来自双重
找到克扎卡拉
我想在java中它一定也这么简单 @marounnaroun的可能副本请注意,经过高度投票并被接受的答案实际上并没有回答原始问题。@user3198674您不清楚自己在问什么。你是想去掉变音符号(如你的例子所示)还是在寻找外国单词的发音(如你问题中所述)。这是两个完全不同的问题。@jarnbjo感谢您的关注。我说错了。事实上,我想要的是去掉发音符号,得到英文字符。我编辑了它。@user3198674:带有问号的输出表明您有某种字符编码问题,例如,用一个字符编码保存源文件,让编译器使用不同的编码。“Krząkała”的预期产量为“Krzakaa”。问题是ł上的笔划不是变音符号,因为示例代码删除了所有非ASCII字符,所以ł完全消失。
select
REGEXP_REPLACE(replace(convert(trim(upper('Krząkała')), 'us7ascii'), '_', ' '), '[^A-Z ]', '') std