猿问

输入完成后如何终止扫描仪?

public static void main(String[] args) {


        Scanner scan = new Scanner(System.in);

        try {

            while (scan.hasNextLine()){


                String line = scan.nextLine().toLowerCase();

                System.out.println(line);   

            }


        } finally {

            scan.close();

        }

    }

只是想知道在完成输入后如何终止程序?由于假设我将继续输入内容,因此扫描器在多次“输入”后仍将继续运行...我尝试了:


if (scan.nextLine() == null) System.exit(0);


if (scan.nextLine() == "") System.exit(0);  

他们没有用...。程序继续运行,并与最初的意图相混淆,


神不在的星期二
浏览 632回答 3
3回答

富国沪深

问题是,除非用户……以某种方式告诉用户,否则程序(如您的程序)不知道用户已完成输入。用户可以通过两种方式执行此操作:输入“文件结束”标记。在UNIX和Mac OS是(典型值)CTRL+ D,和Windows CTRL+ Z。那将导致hasNextLine()返回false。输入一些特殊的输入,程序将其识别为“我完成了”。例如,它可以是空行,也可以是一些特殊值,例如“ exit”。该程序需要对此进行专门测试。(您也可以想象使用计时器,并假设用户已经输入N秒或N分钟未输入任何内容,则此操作已经完成。但这不是用户友好的方法。)当前版本失败的原因是您正在==测试一个空字符串。您应该使用equals或isEmpty方法。(请参阅如何比较Java中的字符串?)其他要考虑的因素是区分大小写(例如,“退出”与“退出”)以及前导或尾随空格的影响(例如,“退出”与“退出”)。
随时随地看视频慕课网APP

相关分类

Java
我要回答