我需要实现一个非常粗略的语言识别算法。在我的世界里,只有两种语言:英语和非英语。我有 ArrayList,我需要确定每个字符串是否可能是英语或其他语言,其 Unicode 字符在一定范围内。所以我想做的是使用某种类型的“存在”测试来检查每个字符串是否在这个范围内。如果它通过了测试,我说这个字符串不是英文的,否则就是英文的。我想尝试两种类型的测试:
- TEST-ANY:如果字符串中的任何字符在范围内,则字符串通过测试
- TEST-ALL:如果字符串中的所有字符都在范围内,则字符串通过测试
由于数组可能很长,我需要非常有效地实现它。在 Java 中执行此操作的最快方法是什么?
谢谢
更新:我专门通过查看特定范围的 Unicode 来检查非英语,而不是检查字符是否为 ASCII,部分是为了解决下面提到的“恢复”问题。我想弄清楚的是Java是否提供了任何基本上尽可能有效地实现TEST-ANY或TEST-ALL(或其他类似测试)的类/方法。换句话说,我试图避免重新发明轮子,尤其是如果在我之前发明的轮子更好的话。