本节教学视频链接: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();}
}