Java读取出现问题输入的问题

这是楼主最近写的一段代码:

这昰输出然而楼主发现,

首先Scanner是一个扫描器,它扫描数据都是去内存中一块缓冲区中进行扫描并读入数据的而我们在控制台中输入的數据也都是被先存入缓冲区中等待扫描器的扫描读取。这个扫描器在扫描过程中判断停止的依据就是“空白符”空格啊,回车啊什么的嘟算做是空白符

nextInt()方法在扫描到空白符的时候会将前面的数据读取走,但会丢下空白符“\r”在缓冲区中但是,nextLine()方法在扫描的时候会将扫描到的空白符一同清理掉

了解了这两个方法特性和区别,就知道了上边的代码究竟是怎么回事以及知道了解决的方法。像是上边的代碼nextInt()方法之后在缓冲区中留下了“\r”然后nextLine()方法再去缓冲区找数据的时候首先看到了“\r”,然后就把这个“\r”扫描接收进来并在缓冲区内清除掉。其实nextLine()方法是执行过的,并没有不执行

我们可以多使用一个nextLine()先将内存区中的空白符“\r”读走,在进行输入赋值!!

}

我要回帖

更多关于 java读取输入 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信