虽然不等于字符串

Ada*_*ham 2 java

我正在制作基于文本的RPG游戏,我正在创建一个chooseClass方法.看代码:

public static void classChoice(){
    String cont =null;
    String[] classes = {"rogue", "wizard", "knight", "archer"};
    Scanner input = new Scanner(System.in);
    do{
        System.out.println("Choose your class (Rogue, Wizard, Knight, Archer): ");
        cont = input.next();
        if (cont.equalsIgnoreCase("rogue")){
            System.out.println("You have chosen the Rogue!");
        } else if (cont.equalsIgnoreCase("wizard")) {
            System.out.println("You have chosen the Wizard!");
        } else if (cont.equalsIgnoreCase("knight")) {
            System.out.println("You have chosen the Knight!");
        } else if (cont.equalsIgnoreCase("archer")) {
            System.out.println("You have chosen the Archer!");
        } else {
            System.out.println("Choose a valid class!");
        } 
    } while(!cont.equals(classes));
}
Run Code Online (Sandbox Code Playgroud)

所以我为所有类创建了一个字符串数组,我认为我可以让用户输入"cont"并说它虽然不等于任何"类"数组值,但是打印消息"选择一个有效的课程!" 它没有用,有什么想法吗?

use*_*ica 9

cont.equals(classes)不测试是否contclasses.它测试是否cont等于classes.既然cont是一个String并且classes是一个字符串数组,这将永远不会成立.

我建议Arrays.asList用来制作课程列表.然后,您可以测试列表是否包含cont:

classes = Arrays.asList("rogue", "wizard", "knight", "archer");

... while (!classes.contains(cont));
Run Code Online (Sandbox Code Playgroud)