Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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_Android_Listview - Fatal编程技术网

Java 检测列表项是否用特定语言编写

Java 检测列表项是否用特定语言编写,java,android,listview,Java,Android,Listview,我有一个应用程序,它从一个开放的数据平台获取数据,然后在列表视图中显示接收到的数据,一些数据是用希伯来语写的,我居住的国家与以色列有严重的问题,所以我担心这会给我带来麻烦 是否有方法检测列表项是否用希伯来语编写,然后删除该项,使其不显示?基于答案: 使用二元分析算法自动检测文本的自然语言相对容易。您可以自己实现它,也可以简单地使用一些现有的库,例如project一个非常简单的方法是检查所有字符是否为希伯来文字符 希伯来文字符都位于Unicode希伯来文块中,介于U+0590和U+05FF之间。你

我有一个应用程序,它从一个开放的数据平台获取数据,然后在列表视图中显示接收到的数据,一些数据是用希伯来语写的,我居住的国家与以色列有严重的问题,所以我担心这会给我带来麻烦

是否有方法检测列表项是否用希伯来语编写,然后删除该项,使其不显示?

基于答案:


使用二元分析算法自动检测文本的自然语言相对容易。您可以自己实现它,也可以简单地使用一些现有的库,例如project

一个非常简单的方法是检查所有字符是否为希伯来文字符

希伯来文字符都位于Unicode希伯来文块中,介于U+0590和U+05FF之间。你可以定义一个你认为文本是希伯来文的阈值A。
Map<Boolean, Long> map = str.chars()
    .mapToObj(i -> i)
    .collect(Collectors.partitioningBy(t -> isHebrew(t), Collectors.counting()));

long hebrew = map.get(true);
long total = map.get(false) + hebrew;
double ratio = hebrew / (double) total;
System.out.println((100 * ratio) + "%");
Map Map=str.chars()
.mapToObj(i->i)
.collect(collector.partitionby(t->isHebrew(t),collector.counting());
长希伯来语=map.get(true);
长总计=map.get(false)+希伯来语;
双倍比率=希伯来语/(双倍)总数;
系统输出打印项数((100*比率)+“%”);
静态布尔值(int c){

return(c>=0x0590&&c检查列表中的单词是否存在于希伯来语词典中?可以有一个包含10000个希伯来语单词的哈希集,然后只需检查列表一次,检查该集中是否存在任何单词,即O(n)不,只是一种检查希伯来字母的方法。然后将希伯来字母列表作为unicode字符串,然后将列表中的几个单词逐字符与字母列表进行比较。嗯,希伯来字符有,因此您可以检查数据的大部分是否为希伯来语。有没有方法检查数组列表中是否包含特定值?比方说我制作了一个数组,并将其命名为“hebrewAlph”,其中包含所有希伯来字母,如何检查实际数组列表中是否有任何具有任何hebrewAlph值的项?
static boolean isHebrew(int c) {
    return (c >= 0x0590 && c <= 0x05FF);
}