黑马程序员技术交流社区

标题: 求大神给一个关于键盘录入对象中hasNextInt方法问题的解决f... [打印本页]

作者: 青菜市场    时间: 2015-12-19 08:31
标题: 求大神给一个关于键盘录入对象中hasNextInt方法问题的解决f...
Main(主方法){
创建键盘录入对象;
Int x=0;
whlie (sc.hasNextInt()){
     i = sc.nextInt();
     System.out.print(i+"  ");
}}
发现输入多个整数用空格隔开Enter后可以输出所有整数,但是键盘录入不会结束,问题怎样让代码输入一行就结束键盘录入?我也试到一个可以在while方法后面加String str = sc.nextLine();在最后输入非数字符就结束的方法,可这不是我要的。


作者: 1158147908    时间: 2015-12-19 08:31
我用debug调试了一下,发现在录入最后一个字符之后,f6就停在了sc.hasNextInt()这个位置了,等待下次输入了,java默认的是用\r\n结束的一次输入,要想跳出这个循环必须自定义一个特殊字符呀,楼主为啥这么纠结,目测应该没有其他方法了吧,楼主结分吧*_*
作者: kingjacob    时间: 2015-12-19 16:15
可以直接用  sc.close()方法来结束啊,你试试,不行再问我哈!
作者: 青菜市场    时间: 2015-12-19 22:38
kingjacob 发表于 2015-12-19 16:15
可以直接用  sc.close()方法来结束啊,你试试,不行再问我哈!

试过放while里面会报错,后面还是没用
作者: 星海浮沉    时间: 2015-12-22 15:32
可以尝试加上一个条件判断啊,比如
if(i==-1){
    break;
}
用特殊字符控制跳出无限循环啊~
作者: 青菜市场    时间: 2015-12-22 18:04
星海浮沉 发表于 2015-12-22 15:32
可以尝试加上一个条件判断啊,比如
if(i==-1){
    break;

试过了\r\n都不行
作者: 星海浮沉    时间: 2015-12-22 19:10
青菜市场 发表于 2015-12-22 18:04
试过了\r\n都不行

\r\n这不都被系统使用了吗?系统用来换行了啊!你得自己设置一个特别的用来作为判断的条件啊~!
作者: 青菜市场    时间: 2015-12-22 19:19
星海浮沉 发表于 2015-12-22 19:10
\r\n这不都被系统使用了吗?系统用来换行了啊!你得自己设置一个特别的用来作为判断的条件啊~! ...

不用设别 打个字母就跳出循环了,你没看清题目
作者: 雨来    时间: 2015-12-24 20:12
换nextLine(); 把从键盘接收的字符  封装成String 对象
作者: 青菜市场    时间: 2015-12-24 20:17
雨来 发表于 2015-12-24 20:12
换nextLine(); 把从键盘接收的字符  封装成String 对象

这样我就要切,我就是不想切,而且判断不通过,nexline不会被获取




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2