编程语言
首页 > 编程语言> > 在Java中输入Ctrl D时如何退出程序?

在Java中输入Ctrl D时如何退出程序?

作者:互联网

以下是我的反向波兰计算器的一部分.

如果输入整数,则将其压入堆栈,如果按=,则查看结果.但是,我想添加另一个条件:如果用户按下CTRL D,程序将退出.

我在网上看过,但似乎找不到任何解决方案.有任何想法吗?谢谢.

Scanner mySc = new Scanner(System.in);
//If input is an integer, push onto stack.
 if (mySc.hasNextInt()) {       
    myStack.push(mySc.nextInt());
} 
//Else if the input is an operator or an undefined input. 
else if (mySc.hasNext()) {
    //Convert input into a string.
    String input = mySc.nextLine(); 
    //Read in the char at the start of the string to operator.
    char operator = input.charAt(0); 
    if (operator == '=') {
        //Display result if the user has entered =.
    }
**else if ("CTRL-D entered") {
    System.exit(0);
    }**

解决方法:

尝试这个:

public static void main(String[] args) {
    try {
        byte[] b = new byte[1024];
        for (int r; (r = System.in.read(b)) != -1;) {
            String buffer = new String(b, 0, r);
            System.out.println("read: " + buffer);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

在这种情况下,当您按CTRL D时,循环将停止,这是因为CTRL D将EOF信号发送到System.in InputStream中的-1.在* nix系统上就是这种情况,对于Windows系统,使用CTRL Z组合键发送EOF信号

标签:java-util-scanner,ctrl,java,null,exit
来源: https://codeday.me/bug/20191011/1894977.html