第十五讲——用户交互Scanner
第十五讲 用户交互Scanner
写在前面;
之前的java程序是死的,没有做到人机交互
接下来讲的Scanner类(死尬男~|扫描器)可以获取用户输入
通过Scanner类来获取用户的输入(用IF)
- 语法;
Scanner scanner = new Scanner(System.in);if(scanner.hasNext()==true){ String str = scanner.next(); System.out.println(str); } scanner.close();
IF函数格式
IF(IF){true 执行 }else{false 执行 }
通过Scanner类来获取用户的输入(不用IF)
Scanner sanner = new Sacnner(Sytem.in);String str = sanner.nextLine();System.ouy.println(str);sacnner.close();
System.out 输出
System.in 输入
IO in输入 out输出
步骤;
首字母小写 遵守驼峰原则;next

test 01
下面用的是
确认Users输入结束 hasNext()
获取Users输入数据 Next()
package scanner;
import java.util.Scanner;
//在输入Scanner中new后按alt+Enter 会自动导入Scanner类
public class Demo01 {
public static void main(String[]args){
Scanner scanner = new Scanner(System.in);
//创建的扫描器,用于接受键盘数据
System.out.println("使用next方式获取;");
// 1.用IF判断用户有无输入 2.用hasNext来确认输入结束,这里会等待Users输入
//用hasNext会以空格符为节点后面舍弃
if(scanner.hasNext()==true){
//3.使用next()获取Users输入的数据 4.将得到的数据赋值到str
String str =scanner.next();
System.out.println("Users输入的字符为;"+"\n"+str);
//凡是IO流的类如果不关闭,会一直占用资源,一定要关闭
}
scanner.close();
}
}
这里用到了IF函数 目的在于更方便理解Scanner类的作用 so不多介绍IF 根据算法来了解就行 后面会加以应用并且以下不使用IF函数
显示为;
XXZ\out\production\DEMO-XXZ scanner.Demo01
使用next方式接受;
天行健 君子以自强不息 地势坤 君子以厚德载物
Users输入的字符为;
天行健
Process finished with exit code 0
- 发现我空格后面的全给他吃了
接下来test是什么原因
- 提出假设和输入确认结束的hasnext()有关系
test02
Test02使用;
确认Users输入结束; hasNextLine()
获取Users输入数据; nextLine()
package scanner;
import java.util.Scanner;
public class Test02 {
public static void main(String[]args){
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextLine()==true){
String str = scanner.nextLine();
System.out.println(str);
}
scanner.close();
}
}
显示
Desktop\DEMO-XXZ\out\production\DEMO-XXZ scanner.Test02
Hello world!!!
Hello world!!!
Process finished with exit code 0
sum up (重点)
- 有两种确认Users输入数据 and 获取Users输入数据的方法
- hasNext——>Next //忽略空格后 所有内容
- hasNextLine——>nextLine //显示Enter前 所有内容
不用IF
不用If函数进行获取Users输入
- 使用next
package scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[]args){
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(str);
scanner.close();
}
}
显示
Desktop\DEMO-XXZ\out\production\DEMO-XXZ scanner.Demo02
Hello Wolrd!!!
Hello
Process finished with exit code 0
- 使用nextLine
package scanner;
import java.util.Scanner;
public class Demo02{
public static void main(String[]args){
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(str);
scanner.close();
}
}
显示
Desktop\DEMO-XXZ\out\production\DEMO-XXZ scanner.Demo02
Hello World!!!
Hello World!!!
Process finished with exit code 0
Scanner的进阶用法
Scanner判定
用Sacanner来判定和获取需要的类型数据
格式(打比方需要int类型数据)
Scanner scanner = new Scanner(System.in);//建立扫描器——易错!!! //判定是否int数据 if(scanner.hasNextInt()==true){ int num01 = scanner.nextInt(); System.out.println("输入的是整数;"+num01); } else { System.out.println("输入的不是整数!"); scanner.close();
详
package scanner;
import java.util.Scanner;
//进阶;用来判定输入的类型是否符合需要的类型
//hasNextLine+类型如——hasNextLineInt
public class Demo03 {
public static void main(String[] args) {
//=====第一步-应用Scanner类=====
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数;");
if (scanner.hasNextInt() == true) {//true 执行以下
//==true可以省略不写 但是我还在练习 所以我写 软件会报警正常
int str = scanner.nextInt();
System.out.println("Users输入的整数是;" + str);
} else { //false 执行以下
System.out.println("我tm直接报警!!");
}
System.out.println("这回输入小数;");//=====Float======
if (scanner.hasNextFloat() == true) {
float str02 = scanner.nextFloat();
System.out.println("这逼输入的小数为;"+str02);
} else {
System.out.println("这傻逼输入的不是小数!!");
}
scanner.close();
}
}
显示为
Desktop\DEMO-XXZ\out\production\DEMO-XXZ scanner.Demo03
请输入整数;
10.1
我tm直接报警!!
这回输入小数;
这逼输入的小数为;10.1
Process finished with exit code 0
while应用
利用while来完成;
- 多次输入数据
- 统计输入次数
- 统计total
- 统计平均值
- 通过非数字结束输入并反馈数据
package scanner;
import java.util.Scanner;
public class While {
public static void main(String[]ages){
//建立扫描器
Scanner scanner = new Scanner(System.in);
//设定输入次数初始值为整数;0
int i = 0;
//设定输入数据初始总和为;0
double sum = 0;
System.out.println("请开始输入数据;");
while (scanner.hasNextDouble()==true){
double d = scanner.nextDouble();
i++;
sum = sum+d;
System.out.println("你输入了第"+i+"个数据"+"目前合计为"+sum);
}
System.out.println("总计"+"输入 "+i+" 次;"+"\n"+"total "+sum+";"+"\n"+"平均值 "+sum/i);
scanner.close();
}
}
显示
Desktop\DEMO-XXZ\out\production\DEMO-XXZ scanner.While
请开始输入数据;
12
你输入了第1个数据目前合计为12.0
23
你输入了第2个数据目前合计为35.0
24
你输入了第3个数据目前合计为59.0
10
你输入了第4个数据目前合计为69.0
小熊
总计输入 4 次;
total 69.0;
平均值 17.25
Process finished with exit code 0
小计
- 学会用Scanner类完成用户交互
- 使用If函数进行判断数据类型
- 掌握nextline-hasNextLine(适用字符)与next-hasnext(适用数字)的特点
- 掌握while循环函数的应用
- 结尾加
scanner.close();//关闭
3新增单词
| 1 | Scanner | 扫描器类 | 死尬男~ | |
|---|---|---|---|---|
| 2 | else | 否则 | 埃尔斯~ | |
| 3 | hasNext | 是否有下一个 | 哈斯内斯特~ | |
| 4 | hasNextLine | 是否有下一个/排成一行 | 哈斯内斯特莱恩~ | |
| 5 | next | 下一个 | 内斯特~ | |
| 6 | nextLine | 下一个/排成一行 | 内斯特莱恩~ | |
| 7 | close | 关闭 | 克洛斯~ | scanner.close(); |
| 8 | Test | 测试 | 塔斯特~ | |
| 9 | while | 循环 | 歪L~ | while (scanner.hasNextDouble()==true){}//和if一样 |
如果你有梦想 就努力去实现 就这样

浙公网安备 33010602011771号