我有一个菜单驱动的程序,在这个程序中,用户会被提示输入他们想要的整数,以便构建一个二进制搜索树——我刚刚开始,一旦它们达到"Q",就无法读取它们的整数
switch(inputOption){
case 1:
System.out.println("You've selected to create a new binary tree." + "n");
Scanner scan = new Scanner(System.in);
String again;
String tempInput;
Boolean repeat = true;
try{
System.out.println("Please enter as many integers as you'd like, hit 'Q' when you are finished." + "n");
do{
tempInput = scan.next();
if(tempInput != "Q"){
integerInput = Integer.parseInt(tempInput);
repeat = true;
}
else
repeat = false;
}while(repeat);
}catch(InputMismatchException e){}
关于如何让它识别"Q",有什么想法吗?
使用
if(!tempInput.equals("Q"))
而不是
if(tempInput != "Q")
Java字符串不适用于比较运算符。
尝试添加(||"q")可能会有所帮助。不过你没有提供太多信息。例如,您是否访问了调试器并分析了tempInput的实际值,以确保它实际上是"Q"?如果是这样的话,那么可以尝试对字符进行强制转换,或者修剪它可能包含的任何额外空格或特殊字符。
更多信息会更好:-D