java - 如何在Java中模仿音译?

标签 java unicode tr

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

相关文章:

python - 如何将 BeautifulSoup.ResultSet 转换为字符串

bash - 在bash脚本的字符串中用转义的pip字符 "|"替换管道字符 "\|"

unix - 在记事本或 BBEdit 中将换行符替换为 ',' 或使用 Unix 命令 `tr` ?

java - 从 1.6 升级到 Java 1.7 引入的 SSL 错误

java - Java的内置库实现

unicode - 什么 Unicode 符号代表一个人?

Bash:用换行符替换 "",使用 sed 或 tr

java - 检查列表中子类的实例并返回对象

java - java Callable接口(interface)如何执行多任务

python - 提取列表中的 Unicode 表情符号,Python 3.x