gpt4 book ai didi

java - 如何从 UTF-8 输入中检测脚本系统/字母表?

转载 作者:行者123 更新时间:2023-11-30 08:59:52 27 4
gpt4 key购买 nike

我目前正在构建一个基于 icu4j 的音译 Web 界面。自动检测用户输入查询的脚本系统的最佳方式是什么?

例如如果输入是 body 里或 عالمتاب 我如何/应该识别它来自哪个脚本系统?

最佳答案

最简单的方法是检查第一个字符的脚本:

static Character.UnicodeScript getScript(String s) {
if (s.isEmpty()) {
return null;
}
return Character.UnicodeScript.of(s.codePointAt(0));
}

更好的方法是找到最常出现的脚本:

static Character.UnicodeScript getScript(String s) {
int[] counts = new int[Character.UnicodeScript.values().length];

Character.UnicodeScript mostFrequentScript = null;
int maxCount = 0;

int n = s.codePointCount(0, s.length());
for (int i = 0; i < n; i = s.offsetByCodePoints(i, 1)) {
int codePoint = s.codePointAt(i);
Character.UnicodeScript script = Character.UnicodeScript.of(codePoint);

int count = ++counts[script.ordinal()];
if (mostFrequentScript == null || count > maxCount) {
maxCount = count;
mostFrequentScript = script;
}
}

return mostFrequentScript;
}

关于java - 如何从 UTF-8 输入中检测脚本系统/字母表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27047223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com