Scanner类
在 java.util.Scanner 的类种,可以通过Scanner类来获取用户的输入
基本语法:
Scanner scanner = new Scanner(System.in); // 创建一个扫描器对象,用于接收键盘数据
scanner.hasNextLine() //为布尔值,存在为true ,不存在为false 对应nextline()
scanner.hasNext() //为布尔值,存在为true ,不存在为false 对应next()
scanner.hasNextInt() //为布尔值,存在为true ,不存在为false 对应nextInt()
scanner.hasNextDouble() //为布尔值,存在为true ,不存在为false 对应nextDouble()
String string = scanner.nextLine(); //创建一个字符串,用于接收键盘输入的内容
String string = scanner.next(); //创建一个字符串,用于接收键盘输入的内容,键盘输入会将字符串中的空格全部去除,并且只会读取到空格,空格后的将不会读取
int i =scanner.nextInt(); //定义一个整数,用于接收键盘输入的内容
double i =scanner.nextDouble(); //定义一个浮点数,用于接收键盘输入的内容
scanner.close(); //关闭键盘输入
案例一
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// 从键盘接收数据
System.out.println("请输入整数:");
// 判断输入是否为整数
if (s.hasNextInt()){
int i = s.nextInt();
System.out.println("整数数字是:" + i);
}else {
System.out.println("你输入的不是整数");
}
System.out.println("请输入一个小数:");
if (s.hasNextDouble()){
double i =s.nextDouble();
System.out.println("输入的小数为:" + i);
} else {
System.out.println("你输入的不是一个小数");
}
s.close();
}
}
运行结果:
请输入整数:
11
整数数字是:11
请输入一个小数:
3.14
输入的小数为:3.14
案例二
import java.util.Scanner;
public class Deom05 {
public static void main(String[] args) {
double sum = 0 ;
int n = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数");
while (scanner.hasNextDouble()){
System.out.println("请输入一个数");
double a = scanner.nextDouble();
sum += a;
n++;
double b = sum / n;
System.out.println("总共输入" + n +"个数,总和为:" + sum + "平均数为:" +
b);
}
}
}
运行结果:
请输入一个数
12
请输入一个数
总共输入1个数,总和为:12.0平均数为:12.0
16
请输入一个数
总共输入2个数,总和为:28.0平均数为:14.0
11
请输入一个数
总共输入3个数,总和为:39.0平均数为:13.0
8
请输入一个数
总共输入4个数,总和为:47.0平均数为:11.75
sa
注意事项
next():只读取输入直到空格。它不能读两个由空格或符号隔开的单词。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)
nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。
案例三 (使用next方式)
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式来接收");
//判断用户有没有输入数据
if (scanner.hasNext()){
//使用next方式接收
String string = scanner.next();
System.out.println("输出内容为:" + string);
}
// 凡是属于IO流的类,如果不关闭,一直会占用资源
scanner.close();
}
结果:
使用next方式来接收
111 222
输出内容为:111
案例四: (使用nextLine方式)
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
// 创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine");
// 判断用户有没有数据输入
if (scanner.hasNextLine()){
String string = scanner.nextLine();
System.out.println("输出内容为:" + string);
}
scanner.close();
}
}
结果:
使用nextLine
111 222
输出内容为:111 222