本节教学视频链接:https://www.bilibili.com/video/BV12J41137hu?p=33&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p=33&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5
Scanner 类用于扫描输入文本从字符串中提取数据,包括整数、浮点数、布尔值等。
以下是一些常用的方法:
-
next()
:获取下一个标记(使用默认的空白字符集)。 -
nextLine()
:获取下一行文本。 -
nextInt()
:获取下一个整数。 -
nextDouble()
:获取下一个双精度浮点数。 -
nextBoolean()
:获取下一个布尔值。 -
hasNext()
:如果有另一个标记,则返回 true。 -
hasNextInt()
:如果下一个标记是一个整数,则返回 true。 -
hasNextDouble()
:如果下一个标记是一个双精度浮点数,则返回 true。 -
hasNextBoolean()
:如果下一个标记是一个布尔值,则返回 true。
代码示例1:
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 从标准输入接收数据
System.out.println("请输入一行文本:");
String line = scanner.nextLine(); //获取数据时程序会停住,等待数据输入
System.out.println("输入的文本是:" + line);
System.out.println("请输入一个整数:");
int intValue = scanner.nextInt();
System.out.println("输入的整数是:" + intValue);
System.out.println("请输入一个双精度浮点数:");
double doubleValue = scanner.nextDouble();
System.out.println("输入的双精度浮点数是:" + doubleValue);
System.out.println("请输入一个布尔值:");
boolean booleanValue = scanner.nextBoolean();
System.out.println("输入的布尔值是:" + booleanValue);
scanner.close();
}
}
在实际应用中,你可以根据需要选择合适的方法来读取数据。记得在完成操作后关闭 Scanner
对象以释放资源。
代码示例2
配合if语句使用
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i;
float f;
System.out.println("请输入整数");
//如果。。。那么。。。
if(scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据" + i);
}else{
System.out.println("您输入的不是整数数据");
}
System.out.println("请输入小数");
if(scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据" + f);
}else{
System.out.println("您输入的不是小数数据");
}
scanner.close();
}
}
代码示例3
配合while使用
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double sum = 0;
int m = 0;
System.out.println("请输入数据");
while (scanner.hasNextDouble()){
System.out.println("请输入数据");
double x = scanner.nextDouble();
m++; //m = m + 1;
sum = sum +x;
}
System.out.println(m + "个数的和是" + sum);
System.out.println(m + "个数的平均值" + sum/m);
scanner.close();
}
}