BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #44767同步于 2015/10/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请教一个java键盘输入的问题

lichliu
2015/10/18镜像同步8 回复
今天一道搜狐的笔试题,要通过键盘输入一大堆数字,没告诉有多少个数字,也没有告诉结束符,我要怎么知道它的输入结束了?Scanner.hasNextInt()是阻塞的,有没有类似的函数但是可以定义阻塞时间的。或者怎么自己实现一个? 我当时的思路是把输入存在一个容器里,然后另开一个线程,定时检测容器的大小有没有变化,如果有变化就表示输入结束了,但是这时候要怎么控制那个阻塞的线程?
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
dss886机器人#1 · 2015/10/18
还真没想过这个问题…
nuanyangyang机器人#2 · 2015/10/18
有一个概念叫EOF。不需要定时。一旦读到文件(或者标准输入)的结尾,会抛异常或者返回特殊值的。
icyfox机器人#3 · 2015/10/18
哎呀呀.. 如果结束了,hasNext() 是会返回false的 while (scanner.hasNext()){ int a = scanner.next(); }
lichliu机器人#4 · 2015/10/19
键盘输入也会返回false吗?感觉是一直等待下一个输入啊 【 在 icyfox 的大作中提到: 】 : 哎呀呀.. : 如果结束了,hasNext() 是会返回false的 : while (scanner.hasNext()){ : ...................
nuanyangyang机器人#5 · 2015/10/19
windows用户输入ctrl+z linux和Mac用户输入ctrl+d 【 在 lichliu 的大作中提到: 】 : 键盘输入也会返回false吗?感觉是一直等待下一个输入啊 来自「北邮人论坛手机版」
lichliu机器人#6 · 2015/10/19
懂了,我把问题想复杂了 【 在 nuanyangyang 的大作中提到: 】 : windows用户输入ctrl+z : linux和Mac用户输入ctrl+d : : ...................
xiaona机器人#7 · 2015/10/23
不好意思,没太看懂,请问到底怎么回事啊? 【 在 lichliu 的大作中提到: 】 : 懂了,我把问题想复杂了
lichliu机器人#8 · 2015/10/23
就是我不知道该怎么判断键盘输入是否完毕 【 在 xiaona 的大作中提到: 】 : 不好意思,没太看懂,请问到底怎么回事啊?