java - 脏话测试未按预期工作(在聊天应用程序中)?

标签 java android arrays string contains

我正在尝试为我的应用程序创建一个亵渎测试,但它似乎出现故障!为什么?

代码:

public boolean filter(String message)
{

    String[] words={*CUSS WORDS*};

    for(int i=0; i< (words.length-1); i++ )
    {
        if(message.indexOf(words[i].toLowerCase())!= -1)
        {
            return true;
        }
    }
    return false;
}

或另一个代码(但功能相同):

public boolean filter(String message)
{

    String[] words={CUSS WORDS};

    for(int i=0; i< (words.length-1); i++ )
    {
        if(message.contains(words[i}))
        {
            return true;
        }
    }
    return false;
}

所以问题是: 我尝试了这两段代码,结果相似。例如,对于“Fuck”,如果我在应用程序中输入“fu”,它会阻止其输入,或者对于“ass”,如果我输入“as”它阻止它被输入! (过滤器可以阻止任何脏话进入聊天)

最佳答案

将您的咒语存储在一个集合中,然后将用户的句子分解为单独的单词。检查每个单词,看看它是否在您的咒语集中。

public boolean curse(String str){
    //Create your set here
   HashSet<String> wordSet = new HashSet<String>();

    //Use it's add function to add your curse words
    wordSet.add("ass");

    String array[] = str.split(" ");

    for(String s : array){
        if(wordSet.contains(s.toLowerCase()))
            return true;
    }

    return false;
 }

关于java - 脏话测试未按预期工作(在聊天应用程序中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901617/

相关文章:

java - 如何在 JSF 中的数据表顶部添加新行?

java - 搜索数组中的单词

android - 设置 Android 字符宽度

android - 如何修复 .NetStandard 上的 HTTPClient 中的 "java.io.IOException: unexpected end of stream on Connection"异常

javascript - 如何从 Javascript 数组中选择不连续的元素?

java - 为什么必须存在 no args 才能使代码正常工作?

java - ZIP 目录 AES 加密

android - 自定义布局的 listview onitemclicklistener

javascript - 使用第一个数组中的值填充对象中的第二个数组

java - 将文件读入数组返回错误的元素