1.Scanner类
package com.lin.study.scanner;
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 str = scanner.next();
System.out.println("输出的内容为: " + str);
}
//凡是属于IO流的类,如果不关闭会一直占用资源,要养成用完就关闭的好习惯。
scanner.close();
}
}
运行结果:
使用next方式接收: Hello world! 输出的内容为: Hello
Process finished with exit code 0
结论:next()不能得到带有空格的字符串,有效字符之前遇到的空白,next也会自动将其去掉。
2.nextLine方式
package com.lin.study.scanner;
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()){
//有输入就使用NextLine方式接收
String str = scanner.nextLine();
System.out.println("输出的内容为: " + str);
}
scanner.close();
}
}
运行结果:
使用nextline方式接收: Helllo world! 输出的内容为: Helllo world!
Process finished with exit code 0
结论:nextLine以回车作为结束符。
3.不使用if判断
package com.lin.study.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据: ");
String str = scanner.nextLine();
System.out.println("输出的内容为: " + str);
scanner.close();
}
}
运行结果:
请输入数据: Hello world! 输出的内容为: Hello world!
Process finished with exit code 0
4.Scanner进阶
4.1
package com.lin.study.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
//1.输入数据
System.out.println("请输入整数数据: ");
//如果。。。那么。。。
if(scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("您输入的整数数据为: " + i);
}else{
System.out.println("您输入的不是整数数据!");
}
//2.第二次输入数据
System.out.println("请输入小数数据: ");
//如果。。。那么。。。
if(scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("您输入的小数数据为: " + f);
}else{
System.out.println("您输入的不是小数数据!");
}
scanner.close();
}
}
运行结果: 请输入整数数据: 1 您输入的整数数据为: 1 请输入小数数据: 1.1 您输入的小数数据为: 1.1
Process finished with exit code 0
4.2
输入多个数字,并求其平均数,每输入一个数字回车确认,最后用非数字结束输入 并输出执行结果。
package com.lin.study.scanner;
import java.util.Scanner;
public class Demo05 {
//输入多个数字,并求其平均数,每输入一个数字回车确认,最后用非数字结束输入 并输出执行结果。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("程序已启动,请您输入数据: ");
double sum = 0;//定义和
int m = 0;//定义计算输入了多少个数字
//通过循环判断是否还有输入,并在循环中进行求和与统计
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
m++;
sum = sum + x;
System.out.println("这是您输入的第 " + m + "个数据,当前总和sum= " + sum);
}
System.out.println("程序结束,总和sum为: " + sum);
System.out.println("平均值为: " + (sum/m));
//关闭流
scanner.close();
}
}
运行结果: 程序已启动,请您输入数据: 20 这是您输入的第 1个数据,当前总和sum= 20.0 20 这是您输入的第 2个数据,当前总和sum= 40.0 20 这是您输入的第 3个数据,当前总和sum= 60.0 20 这是您输入的第 4个数据,当前总和sum= 80.0 20 这是您输入的第 5个数据,当前总和sum= 100.0 x 程序结束,总和sum为: 100.0 平均值为: 20.0

浙公网安备 33010602011771号