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

时间:2012-08-01 22:01:00

标签: user-interface user-input

我有一个菜单驱动的程序,用户被提示按照他们想要的整数输入,以便构建一个二叉搜索树 - 我刚刚开始并且一旦他们点击就会陷入阅读整数的困境“ 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'的任何想法?

2 个答案:

答案 0 :(得分:1)

使用

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

而不是

if(tempInput != "Q")

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

答案 1 :(得分:0)

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

更多信息会更好:-D