gpt4 book ai didi

java - 输入完成后如何终止Scanner?

转载 作者:行者123 更新时间:2023-12-01 16:49:30 25 4
gpt4 key购买 nike

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);  

他们没有工作......程序继续并与初衷打乱,

最佳答案

问题是程序(比如你的程序)不知道用户已经完成输入,除非用户......以某种方式......告诉它。

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

  • 输入“文件结束”标记。在 UNIX 和 Mac OS 上,通常为 CTRL+D,在 Windows 上为 CTRL+Z。这将导致 hasNextLine() 返回 false

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

(您也可以使用计时器,并假设如果用户在 N 秒或 N 分钟内没有输入任何内容,则已完成。但这不是一个用户友好的方式,在许多情况下这是危险的。)

<小时/>

您当前版本失败的原因是您正在使用 == 来测试空字符串。您应该使用 equalsisEmpty 方法。 (参见How do I compare strings in Java?)

其他需要考虑的事情是区分大小写(例如“exit”与“Exit”)以及前导或尾随空格的影响(例如“exit”与“exit”)。

关于java - 输入完成后如何终止Scanner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61721329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com