我需要包含10个变量,但是当我键入任何内容时,它只包含其中的1个变量,因此我需要知道如何做到这一点,例如,当键入“ Gaming”时,程序会返回“您喜欢游戏吗? ”现在,我输入的所有内容都带有“您喜欢uni吗?”

我尝试了3个小时的Google搜索,并做了他们所说的一切,但我找不到。由于某些原因,使用.contains无效。

    Scanner chatterbot = new Scanner(System.in);
    String uni = ("University");
    String gaming = ("Gaming");

    uni = chatterbot.nextLine();
    if (uni.contains("University"))
        System.out.println("Do you like uni?");
    uni = chatterbot.nextLine();
    if (uni.contains("Yes"))
        System.out.println("Do you study one of SE CS or IT?");
    else if (uni.contains("No"))
        System.out.println("Do you study one of SE CS or IT?");
    uni = chatterbot.nextLine();
    if (uni.contains("Yes"))
        System.out.println("That is really great!");
    else if (uni.contains("No"))
        System.out.println("That is not good!");
    System.exit(0);


    gaming = chatterbot.nextLine();
    if (gaming.contains("Gaming"))
        System.out.println("Do you like gaming?");
    gaming = chatterbot.nextLine();
    if (gaming.contains("Yes"))
        System.out.println("What kind of games do you like to play?");


我希望输出结果是用户输入Uni时显示“您喜欢uni吗?”。当您键入游戏时,它会显示“您喜欢游戏吗?” uni部分有效,但是当我键入Gaming时,什么也没有出现。

最佳答案

当您调用chatterbot.nextLine()时,您的输入将被消耗,因此,如果再次调用nextLine(),它将等待下一个输入。
但是通过将输入保存在变量中,您可以将其与多个值进行比较。

这应该工作:

Scanner chatterbot = new Scanner(System.in);
String input = chatterbot.nextLine();
if (input.contains("University")) {
   System.out.println("Do you like uni?");
} else if (input.contains("Gaming")) {
   System.out.println("Do you like gaming?");
}

09-28 12:39