我正在尝试为我的应用程序创建一个亵渎测试,但它似乎出现故障!为什么?
代码:
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/