首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android Java坏词过滤器

Android Java坏词过滤器
EN

Stack Overflow用户
提问于 2018-08-04 01:48:36
回答 2查看 653关注 0票数 -5

我想创建不好的词过滤器。下面是我的示例代码:

String name = "jack white";   // **NOT WORK** 
String name = "white";  // **WORK**
String lowername = name.toLowerCase();
String[] banned = { "name", "hello", "white"};

if (Arrays.asList(banned).contains(lowername)) {
true;
}

如果名称白色功能工作,但如果名称杰克白色,或xxx白色,或白色xxx功能不工作。

我想为用户的评论做一个不好的词过滤器。

EN

回答 2

Stack Overflow用户

发布于 2018-08-04 01:55:14

试试这个..。

static String string1 = "jack smith ran across the street";
static String string2 = "smith jumped";

public static boolean compareStrings(String one, String two){
    boolean helper = false;

    String[] string = one.split(" ");
    for (int i = 0; i < string.length; i++) {
        if (two.contains(string[i])) {
            helper = true;
            System.out.println(string[i]);
        }
    }

    return helper;

}

然后使用它..。

System.out.println(compareStrings(string1, string2));

这将打印出来...

smith
true
票数 1
EN

Stack Overflow用户

发布于 2018-08-04 02:08:14

实际上,你做错了Arrays.asList(banned).contains(lowername)。了解list.contains

我已经修改了你的代码,如下所示。

    String name = "jack white"; // **NOT WORK** 
    //String name = "white";  // **WORK**
    String lowername = name.toLowerCase();
    String[] banned = {"name", "hello", "white"};
    List<String> data = Arrays.asList(banned);
    boolean status = hasBannedWords(data,lowername);
    Log.d("TAG",""+status);

方法来检查单词。

private boolean hasBannedWords(List<String> data, String sentence) {
    for(String item: data) {
        if(sentence.contains(item)) {
            return true;
        }
    }
    return false;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51677754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档