1、Scanner类
- Scanner就是Java给我们提供的用于程序和人交互的一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
- 基本语法:
// 创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in);
- 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用 hasNext() 与 hasNextLine()判断是否还有输入的数据。
package com.steven.demo; import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { // 创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); // 使用next方法接收 String strNext = scanner.next(); // 判断用户有没有输入字符串;scanner.hasNext()完整的写法是scanner.hasNext()==True;Java中默认把后面的省略。 if(scanner.hasNext()){ System.out.println("strNext:" + strNext); } /*// 使用nextLine方法接收 String strNextLine = scanner.nextLine(); // 判断用户有没有输入字符串 if (scanner.hasNextLine()){ System.out.println("strNextLine:" + strNextLine); }*/ // 凡是属于IO流的类如果不关闭,会一直使用资源,要养成好的习惯:用完就关掉。 scanner.close(); } }
输出结果:
Hello word
strNext:Hello
strNextLine:Hello word
通过输出结果可以看出,输入的字符串一样,但是next() 和 nextLine() 方法接收的字符串不一样。
2、next() 和 nextLine() 区别
-
next():
- 一定要读取到有效字符后才可以结束输入;
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉;
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符;
- next()不能得到带有空格的字符
-
nextLine():
- 以Enter作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符;
- 可以获得空白;