Java 如何使if语句具有多个字符串?
我想做一个简单的石头-布-剪刀游戏,我想在那里做一个if语句,如果用户输入除了石头,布,剪刀以外的单词,它说一个无效的选择,我尝试了“| |”,我也尝试了“&&”Java 如何使if语句具有多个字符串?,java,Java,我想做一个简单的石头-布-剪刀游戏,我想在那里做一个if语句,如果用户输入除了石头,布,剪刀以外的单词,它说一个无效的选择,我尝试了“| |”,我也尝试了“&&” 这应该可以解决问题: if(!userChoice.equalsIgnoreCase("Scissors") && !userChoice.equalsIgnoreCase("Paper") && !userChoice.equalsIgnoreCase("rock")) { System.ou
这应该可以解决问题:
if(!userChoice.equalsIgnoreCase("Scissors") && !userChoice.equalsIgnoreCase("Paper") && !userChoice.equalsIgnoreCase("rock"))
{
System.out.println("Invalid choice. Ending program.");
// Exit program
Main.main(args);
}
使用!String\u name.equalsIgnoreCase(字符串s)
与相同=在比较基本数据类型时使用code>,但显然不能在字符串上使用,因为使用=代码>如果它们不是同一个对象,您只需进行计算,这将始终为false
if(!(userChoice.equalsIgnoreCase("Scissors") || userChoice.equalsIgnoreCase("Paper") || userChoice.equalsIgnoreCase("rock"))
您的&&(“Paper”)
语法无效,只允许布尔类型。您要检查的是,选择不等于“剪刀”,不等于“纸”,也不等于“石头”
当然,这不是唯一的方法,因为您可以使用否定二进制逻辑来切换true、false和OR。您可以使用正确选择的集合,并检查用户选择是否在其中
List<String> correctChoices = Arrays.asList("rock","paper","scissors");
...
if (!correctChoice.contains(userChoice.toLowerCase()){
//invalid input
}
一种简洁的方法是使用开关
语句
switch( userChoice.toLowerCase() ) {
case "scissors":
case "paper":
case "rock":
// Continue
break;
default:
System.out.println("Invalid choice. Ending program.");
System.exit(1);
break;
}
然后按如下方式进行检查:
if(Possibilities.isInPossibilities("paper")) {
....
}
这是针对特定代码的解决方案。但是对于最适合标题的答案,您可以使用Porz答案
List<String> correctChoices = Arrays.asList("rock","paper","scissors");
...
if (!correctChoice.contains(userChoice.toLowerCase()){
//invalid input
}
Set<String> correctChoices = new HashSet<>(Arrays.asList("rock","paper","scissors"));
switch( userChoice.toLowerCase() ) {
case "scissors":
case "paper":
case "rock":
// Continue
break;
default:
System.out.println("Invalid choice. Ending program.");
System.exit(1);
break;
}
Enum Possibilities {
ROCK,
PAPER,
SCISSORS;
public static boolean isInPossibilities(String input) {
for (Possibilities possibilitie: values()) {
if (possibilitie.name().equalsIgnoreCase(input)) {
return true;
}
}
return false
}
}
if(Possibilities.isInPossibilities("paper")) {
....
}