我对java还比较陌生,我正在尝试检查用户名是否有亵渎的行为。我制作了一个包含4个亵渎词的数组,现在我想检查用户的输入中是否有不好的词,但是,我不知道如何形成if语句来检查数组中的所有项。
public static void main(String[] args) {
Scanner character = new Scanner(System.in);
String[] profanities = {"asshole", "ass", "idiot", "stupid"};
System.out.println("What is your name");
String userName = character.next();
if (userName.contains(profanities[])) { //This Part is what i dont understand
System.out.println("Invalid name");
}
else {
System.out.println("Valid Name!");
}
}
5条答案
按热度按时间vvppvyoh1#
使用集合而不是数组列表,然后
profanities.contains(userName)
. 请注意,为了使if语句的计算结果为true,用户应该已经输入了与亵渎集相同的亵渎内容。如果用户输入类似“userjackass”的内容,就不会被归类为亵渎。zc0qhyus2#
我会这样做。。
kcwpcxri3#
无需进一步创造
Collections
,只是你原来的数组。由于先前将设置/已知无效名称集sort
程序启动时,操作只能执行一次。一经整理,就打电话
binarySearch
每输入一次:这样可以避免创建集合、列表或实现循环。
如果无效名称集可能发生更改(例如,添加新名称),则需要第二次更改
sort
操作。在这种情况下,提供的其他答案将是更好的方法。如果无效名称集是已知的,并且在程序执行期间不会更改,请使用此方法。xdnvmnnf4#
尝试:
注:以下为
for
循环遍历数组中的每个条目,并检查该条目是否包含在username中ddhy6vgd5#
不要使用字符串数组,而是使用字符串列表,从中可以轻松使用contains方法。我用列表修改了你的代码,请参阅下面
使用list的另一个优点是,它是动态的,您可以在将来向它添加元素而不会出现任何问题