我正在尝试为我的应用程序创建亵渎性测试,但它似乎出现故障!!为什么呢?
代码:
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;
}
所以问题是: 我尝试了这两个代码类似的代码。例如,对于&#34; 他妈的&#34;,如果我输入&#34; fu &#34;进入我的应用程序会阻止它被输入或者#34; 屁股&#34;,如果我输入&#34; 为&#34;它阻止它被输入! (过滤器可以阻止任何亵渎进入聊天)
答案 0 :(得分:1)
将您的诅咒词存储在一个集合中,然后将用户句子分解为单个单词。检查每个单词,看看它是否在你的诅咒词集中。
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;
}
答案 1 :(得分:1)
由于我的声誉,我无法评论,但是,继续Elroy Jetson的回答,您使用Arrays.asList初始化HashSet,如本答案中所述:https://stackoverflow.com/a/16194967/2836264。 HashMap构造函数在本例中为List<String>
,它是从String[]
创建的。
String[] cussArray = {"fuck", "shit", "brocolli"};
HashSet<String> cussSet = new HashSet<>(Arrays.asList(cussArray));