Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有可能为那些非英语字符获取变音吗?_Java_Javascript_Metaphone - Fatal编程技术网

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

在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{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