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();
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道在完成输入输入后如何终止程序?由于扫描仪在几次"输入"之后仍然会继续,假设我要继续输入输入...我试过:
if (scan.nextLine() == null) System.exit(0);
Run Code Online (Sandbox Code Playgroud)
和
if (scan.nextLine() == "") System.exit(0);
Run Code Online (Sandbox Code Playgroud)
他们没有工作....该计划继续和初衷混淆,
Ste*_*n C 23
问题是程序(像你的程序)不知道用户已经完成了输入输入,除非用户...某种方式......告诉它.
用户可以通过两种方式执行此操作:
输入"文件结束"标记.在UNIX和Mac OS上(通常)CTRL+ D,在Windows CTRL+上Z.这将导致hasNextLine()返回false.
输入一些程序识别为"我已完成"的特殊输入.例如,它可能是一个空行,或某些特殊值,如"退出".该程序需要专门测试.
(您还可以想象使用计时器,并假设用户已经完成,如果他们没有输入任何输入N秒,或N分钟.但这不是一个用户友好的方式来做到这一点.)
您当前版本失败的原因是您正在使用==测试空字符串.您应该使用equals或isEmpty方法.(请参阅如何比较Java中的字符串?)
其他需要考虑的事项是区分大小写(例如"退出"与"退出")以及前导或尾随空格的影响(例如"退出"与"退出").
| 归档时间: |
|
| 查看次数: |
80415 次 |
| 最近记录: |