在 Perl 中,我通常使用音译来计算字符串中与一组可能的字符匹配的字符数。诸如此类:
$c1=($a =~ y[\x{0410}-\x{042F}\x{0430}-\x{044F}]
[\x{0410}-\x{042F}\x{0430}-\x{044F}]);
将计算$a中西里尔字母的数量。正如在前面的示例中,我有两个类(或两个范围,如果您愿意),我还有其他一些类:
$c4=($a =~ y[\x{AC00}-\x{D7AF}\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{A960}-\x{A97F}\x{D7B0}-\x{D7FF}]
[\x{AC00}-\x{D7AF}\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{A960}-\x{A97F}\x{D7B0}-\x{D7FF}]);
现在,我需要在 Java 中做类似的事情。 Java中有类似的构造吗?或者我需要迭代所有字符,并检查它是否在每个类的限制之间?
谢谢
最佳答案
在 Java 中还没见过类似 tr///
的东西。
您可以使用类似的方法来计算所有匹配项:
Pattern p = Pattern.compile("[\\x{0410}-\\x{042F}\\x{0430}-\\x{044F}]",
Pattern.CANON_EQ);
Matcher m = p.matcher(string);
int count = 0;
while (m.find())
count++;
关于java - 如何在Java中模仿音译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25059964/