Scanner类
1.类名称:java.util.Scanner
2.作用:常用于控制台的输入,当需要使用控制台输入时即可调用这个类
一:Scanner类的用法
使用步骤
- 1、首先需要构造一个Scanner类的对象,并且与标准输入流System.in关联
Scanner sc=new Scanner(System.in);
- 2、调用Scanner类对象sc的方法从输入流中获取你需要的输入
说明:当创建了一个Scanner类对象之后,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给对象sc,若要获取需要的内容,调用sc的方法即可
二:常用方法
1:next()
- 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉
- 从键盘中输入的内容就放入了缓存区,这里我们再引入一个光标(cursor)的概念,在汇编中我们学过电脑就是通过光标一点点读取内容的。光标指向哪里,就读哪一个字符
- 当从键盘中输入完内容之后,next()方法开始对输入进来的内容进行扫描分割,光标从输入的内容最开始开始向后扫描,就是光标一点点地向后移动。当光标扫描到第一个分隔符(默认是空格)停止扫描,会创建一个String类的对象,里面存储的就是扫描的内容(不包含空格分隔符)返回创建的String对象的引用给n
- 但是要注意,当前光标还在之前键盘输入内容的行中,光标后面还有内容没有读取,所以又执行next()方法,计算机是不会再从键盘中读取数据的,因为当前光标还指向着字符。所以当再次到next()方法后,会继续从光标的位置扫描,但是后面全都是空格,next()如果没有扫描读入非空格或非回车字符是不会创建String对象并返回的。所以光标会继续向后扫描,并不会结束next调用向下执行输出。
- 当光标已经扫完了所有的字符后,就会读取输出最后一个字符,当前光标的位置就又是空了,然后再执行到next()方法时,就又可以从键盘中输入数据
2:nextLine()
该方法可以识别字符串中的空格以及回车。
注意:建议能不使用就尽量不要使用nextLine()。尽量使用next。因为有时会出现吃回车现象。
3:nextXxx()
举例:nextInt,nextDouble,nextByte(),nextFloat(),nextLong(),nextShot()
三:完整方法
方法 | 描述 |
---|---|
+Scanner(sourse: File) | 创建一个Scanner从指定文件输入 |
+Scanner(sourse: String) | 创建一个Scanner从指定字符创输入 |
+close() | 关闭Scanner |
+hasNext(): boolean | Scanner还有数据则返回true |
+next(): String | 读取下一个字符串 |
+nextLine(): String | 读取一整行作为字符创返回 |
+nextByte(): byte | 读取下一个Byte类型值 |
+nextShort(): short | 读取下一个short类型值 |
+nextInt(): int | 读取下一个int类型值 |
+nextLong(): Long | 读取下一个Long类型值 |
+nextFloat(): float | 读取下一个float类型值 |
+nextDouble(): double | 读取下一个double类型值 |
+useDelimiter(pattern: String): | Scanner 设置Scanner的分隔符,并返回Scanner |