Java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
下面是创建 Scanner 对象的基本语法:
Scanner s = new Scanner(System.in);
接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:
使用 next 方法:
import java.util.Scanner;
public class TestScanner1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
// next方式接收字符串
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
}
}
执行以上程序输出结果为:
next方式接收:
你好 java
输入的数据为:你好
可以看到 java 字符串并未输出,接下来我们看 nextLine。
使用 nextLine 方法:
import java.util.Scanner;
public class TestScanner2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scan.hasNextLine()) {
// 从键盘接收数据
String str2 = scan.nextLine();
System.out.println("输入的数据为:" + str2);
}
}
}
执行以上程序输出结果为:
nextLine方式接收:
你好 java
输入的数据为:你好 java
可以看到 java字符串输出。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
import java.util.Scanner;
public class TestScanner3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if (scan.hasNextInt()) {
// 判断输入的是否是整数
i = scan.nextInt();
// 接收整数
System.out.println("整数数据:" + i);
} else {
// 输入错误的信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (scan.hasNextFloat()) {
// 判断输入的是否是小数
f = scan.nextFloat();
// 接收小数
System.out.println("小数数据:" + f);
} else {
// 输入错误的信息
System.out.println("输入的不是小数!");
}
}
}
执行以上程序输出结果为:
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2
我们从上面的实例可以得出结论:Scanner 是一个基于正则表达式的文本扫描器,可以从文件,输入流,字符串中解析出基本类型和字符串类型的值。Scanner 类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据。对于Scanner的全面教程我们可以观看动力节点在线的视频课程,掌握更多的Scanner类的相关知识。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54