JavaSE05-用户交互Scanner
一、Scanner
Scanner是Java中的一个类(java.util.Scanner),它被用来获取用户输入。
基本语法是:
Scanner scanner = new Scanner(System.in);
- 通过Scanner类的next()和nextLine()方法获取输入的字符串。
- 读取前,一般使用hasNext()和hasNextLine()判断是否还有输入的数据。
-
使用next方式接收字符串。
import java.util.Scanner; public class Scanner01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘输入 Scanner scanner = new Scanner(System.in); System.out.println("使用next接收输入:"); //判断是否还有输入 if (scanner.hasNext()){ String str = scanner.next(); System.out.println("输出:"+str); } scanner.close(); } }
-
使用nextLine方式接收字符串。
import java.util.Scanner; public class Scanner02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine接收输入:"); if (scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("输出:"+str); } scanner.close(); } }
我们对比一下这两种方式的结果:
除了字符串,Scanner类也支持其他的数据类型,比如整型和浮点型等。
import java.util.Scanner;
public class Scanner03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 0;
float f = 0.0f;
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();
}
}
二、小练习
练习:计算多个输入(数字)的和及平均数,当输入为非数字时退出。
import java.util.Scanner;
public class Scanner04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Double x = 0.0;
Double sum = 0.0;
int n = 0;
System.out.println("计算多个数的和及均值");
while (scanner.hasNextDouble()){
x = scanner.nextDouble();
n+=1;
sum = sum + x;
}
System.out.println(n+"个数的和为:"+sum);
System.out.println(n+"个数的均值为:"+ (sum/n));
scanner.close();
}
}