0

我有一个菜单驱动程序,其中提示用户输入尽可能多的整数,以构建二叉搜索树——我刚刚开始,一旦他们点击“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”的任何想法?

4

2 回答 2

1

利用

if(!tempInput.equals("Q"))

而不是

if(tempInput != "Q")

Java 字符串不适用于比较运算符。

于 2012-08-01T22:06:55.630 回答
0

尝试添加 (|| "q") 可能会有所帮助。虽然你没有提供太多信息。例如,您是否使用调试器并分析了 tempInput 的实际值以确保它实际上是 "Q" ?如果是这样,那么可以尝试转换为字符,或修剪它可能包含的任何额外的空格或特殊字符。

更多信息会更好:-D

于 2012-08-01T22:06:58.893 回答