Scanner类的用法

1.hasNext()
当执行hasNext()时,它会先扫描缓冲区中是否有字符,有则返回true,继续扫描。直到扫描为空,这时并不返回false,而是将方法阻塞,等待你输入内容然后继续扫描。
也就是说,hasNext()会一直等待方法调用者的输入,不会停止。那么应该如何停止呢,这时就要用到hasNext()的重载函数
Scanner类的用法
(图片来自https://blog.csdn.net/gao_zhennan/article/details/80562548)
即hasNext(""),使用一个字符串作为匹配符,当出现该字符串,即返回true。然后我们将其取反,即变成当出现该字符串,返回false的结果,也就可以将该字符串当作结束标志来使用从而使得程序块停止。
另外,hasNext还有一系列衍生的函数比如hasNextInt,hasNextDouble等,效果跟hasNext差不多,但是当hasNextxxx读到与xxx不匹配的类型时,该程序块就结束了。我们可以利用这点来设置输入数据的结束标志,比如要计算一串数字的平均值,我们可以采用累加的方法获取sum,最后除以数字个数m。我们可以在输入的最后输入一个end字符串,这样字符串和Int类型不匹配,累加就会自动结束了。
2.nextxxx()方法
next():接收一个字符串,以空格为间隔;
nextInt():接收一个整数,以空格为间隔;
nextDouble():接收一个数字,以空格为间隔。
nextFloat()等等以此类推
3.nextLine()
接收一行字符串,以回车作为结束符
4.next()和nextLine()的区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。

上一篇:Swift的Guard语句


下一篇:回文数及java基础知识讲解