我想创建不好的词过滤器。下面是我的示例代码:
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功能不工作。
我想为用户的评论做一个不好的词过滤器。
发布于 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
发布于 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;
}
https://stackoverflow.com/questions/51677754
复制相似问题