用户必须选择使用哪个树:
您想测试哪一棵树(BST,ST,RBT)?
我认为您可以将输入作为字符串并将其与字符串进行比较以选择要使用的树,但我认为我错了,下面就是我所做的
Scanner input = new Scanner(System.in);
System.out.println("Which tree would you like to test (BST, ST, RBT)? ");
treeChoice = input.nextLine();
if(treeChoice == "BST")
{
myTree = new BST<Integer>();
}
else if(treeChoice == "ST")
{
//ST<Integer> myTree = new ST<Integer>();
}
else if(treeChoice == "RBT")
{
//RBT<Integer> myTree = new RBT<Integer>();
}
else
{
System.out.println("Invalid Entry");
}
这似乎不起作用,当我测试它时,输出是无效的输入。
我是以错误的方式解决这个问题吗?答案 0 :(得分:3)
if(treeChoice == "BST")
应该是
if("BST".equalsIgnoreCase(treeChoice))
并相应地修改其余部分。规则是不使用==
进行String
比较
答案 1 :(得分:1)
您必须使用equals
方法来比较两个字符串。
我建议你使用开关盒。
在交换机的情况下Java 7支持字符串。
这将提高您的代码可读性,并可以处理来自用户的所有输入。