为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

神不在的星期二 2019-10-21 14:47:29
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);  他们没有用...。程序继续运行,并与最初的意图相混淆,
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

问题是,除非用户……以某种方式告诉用户,否则程序(如您的程序)不知道用户已完成输入。


用户可以通过两种方式执行此操作:


输入“文件结束”标记。在UNIX和Mac OS是(典型值)CTRL+ D,和Windows CTRL+ Z。那将导致hasNextLine()返回false。


输入一些特殊的输入,程序将其识别为“我完成了”。例如,它可以是空行,也可以是一些特殊值,例如“ exit”。该程序需要对此进行专门测试。


(您也可以想象使用计时器,并假设用户已经输入N秒或N分钟未输入任何内容,则此操作已经完成。但这不是用户友好的方法。)


当前版本失败的原因是您正在==测试一个空字符串。您应该使用equals或isEmpty方法。(请参阅如何比较Java中的字符串?)


其他要考虑的因素是区分大小写(例如,“退出”与“退出”)以及前导或尾随空格的影响(例如,“退出”与“退出”)。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 630 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信