命令行输入结束符为什么是按回车键?

yuling112358 2013-06-28 10:21:22
不管是用Scanner还是BufferedReader来读取命令行的输入,当按下回车后,程序开始处理录入的数据。
为什么是用回车来结束一次录入?在System.in里面有说明吗
如果用Scanner来扫描文本文件,如果刚好到了行尾,调用一次nextInt,还会往下读下一个数吗?
...全文
470 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞翔的猪头三 2013-06-28
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
第一个问题你看源码,我猜应该写在原类中。 第二个问题我觉得会先进行一个非空判断,如果判断不为空才会继续往下读,否则是会报异常的
源码中的调用对我而言太复杂了,看来看去就没方向了。 我问第二个问题的原因是我以为文件中行尾的换行符和命令行中的回车键一样,Scanner扫描到这里就停止了。
oh_Maxy 2013-06-28
  • 打赏
  • 举报
回复
引用 2 楼 oh_Maxy 的回复:
说是java规定,以回车键表示数据的确认输入。
在结尾,如果没有int直接调用nextInt,会NoSuchElementException 建议用hasNext("\\d+")判断下
oh_Maxy 2013-06-28
  • 打赏
  • 举报
回复
说是java规定,以回车键表示数据的确认输入。
失落夏天 2013-06-28
  • 打赏
  • 举报
回复
第一个问题你看源码,我猜应该写在原类中。 第二个问题我觉得会先进行一个非空判断,如果判断不为空才会继续往下读,否则是会报异常的
oh_Maxy 2013-06-28
  • 打赏
  • 举报
回复
引用 5 楼 yuling112358 的回复:
[quote=引用 3 楼 oh_Maxy 的回复:] [quote=引用 2 楼 oh_Maxy 的回复:] 说是java规定,以回车键表示数据的确认输入。
在结尾,如果没有int直接调用nextInt,会NoSuchElementException 建议用hasNext("\\d+")判断下[/quote] while循环hasNext("\\d+")或者hasNext()用在文本文件输入和标准键盘录入的情况是不同的吗? 如果已经到达文件末尾,那么hasNext方法就返回了false?但是如果是在命令行输入,按回车只是结束一次录入,要使hasNext方法返回false,要使用文件结束序列(windows中是Ctrl+Z)?是这样吗,不知道理解对不对[/quote] 对的。 如果想通过键盘输入多个int,用空格来分隔吧。
飞翔的猪头三 2013-06-28
  • 打赏
  • 举报
回复
引用 3 楼 oh_Maxy 的回复:
[quote=引用 2 楼 oh_Maxy 的回复:] 说是java规定,以回车键表示数据的确认输入。
在结尾,如果没有int直接调用nextInt,会NoSuchElementException 建议用hasNext("\\d+")判断下[/quote] while循环hasNext("\\d+")或者hasNext()用在文本文件输入和标准键盘录入的情况是不同的吗? 如果已经到达文件末尾,那么hasNext方法就返回了false?但是如果是在命令行输入,按回车只是结束一次录入,要使hasNext方法返回false,要使用文件结束序列(windows中是Ctrl+Z)?是这样吗,不知道理解对不对

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧