一般通过Scanner类来获取用户的输入
基本语法:Scanner s = new Scanner(System.in)
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
可以注意到这里我们的输入为"hello world",但是输出结果只有"hello"
可以注意到这里我们的输入为"hello world",输出结果也为"hello world"
使用nextLine()方法不通过判断获得结果
package com.kino.scanner; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { // 创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); // 固定开始语句 System.out.println("请输入数据:"); // 等待用户去输入,直到敲下回车才将输入的东西作为一个变量保存在str字符串里 String str = scanner.nextLine(); // 固定输入语句 System.out.println("输出的内容为:"+str); scanner.close(); // 固定结束语句 } }输出结果:
**小案例:**输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入,并输出执行结果
package com.kino.scanner; import java.util.Scanner; public class Demo05 { public static void main(String[] args) { // 接收键盘输入的数据 Scanner scanner = new Scanner(System.in); // 定义变量"和" double sum = 0; // 定义变量"输入了多少个数字" int count = 0; System.out.println("请输入数据:"); // 通过循环判断是否还有输入,并在里面对每一次进行求和和统计 // 如果输入的数字不是double类型 则会跳出这个循环 while (scanner.hasNextDouble()){ //如果有double类型 double x = scanner.nextDouble(); // 将该double类型的数据存储在x变量中 // 输入完一个数之后,多了一个数字,需要给count+1 count += 1; // 也可用count++代替 // 计算总和 sum += x; } System.out.println(count + "个数的和为" + sum); System.out.println(count + "个数的平均值是" + (sum / count)); scanner.close(); } }输出结果: