Scanner类扫描器基本用法
原创
©著作权归作者所有:来自51CTO博客作者Pointer_*的原创作品,请联系作者获取转载授权,否则将追究法律责任
19.Scanner对象
- java.util.Scanner 是Java5的新特性
- 我们可以通过Scanner来获取用户的输入
- 基本语法
Scanner sc = new Scanner(System.in);
- 通过Scanner类的next(),nextLine()方法可以获取用户输入的字符串,一般我们要用hasNext(),hasNextLine()方法来判断是否有输入数据
- next()方法以空白为结束符,不可以获取空白的字符串
package com.demo.scan;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
// 创建一个扫描器对象用于接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方法接收用户输入:");
// 用hasNext()方法判断是否有输入
if (scanner.hasNext()){
// 用next()方法获取输入
String str = scanner.next();
System.out.println("用户输入的内容是:"+str);
}
// 关闭IO流,凡是IO流要养成关闭的好习惯,不然会一直占用资源
scanner.close();
}
}
- nextLine()方法以Enter为结束符,可以获取到空白的字符串
package com.demo.scan;
import java.util.Scanner;
public class Demo2 {
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);
}
// 关闭IO流
scanner.close();
}
}
- nextInt(), nextFloat, hasNextInt, hasNextFloat
package com.demo.scan;
import javax.sound.midi.Soundbank;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
int i = 0;
float f = 0.0f;
// 创建一个扫描器
Scanner scanner = new Scanner(System.in);
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();
}
}
案例小结
package com.demo.scan;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
// 输入N个数求平均值
double num = 0; // 用来存储输入的数字
double sum = 0; // 用来存储和
int count = 0; // 用来存储输入数字的个数
// 创建一个扫描器对象
Scanner scanner = new Scanner(System.in);
// 判断输入的是否是数字
while (scanner.hasNextDouble()) {
// 获取数字
num = scanner.nextDouble();
count++;
sum += num;
}
System.out.println("平均数:" + (sum / count));
// 关闭IO流
scanner.close();
}
}