从用户输入扫描int时使用char sentinel



我有一个菜单驱动的程序,在这个程序中,用户会被提示输入他们想要的整数,以便构建一个二进制搜索树——我刚刚开始,一旦它们达到"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

相关内容

  • 没有找到相关文章

最新更新