java中Scanner进阶使用
本帖最后由 function 于 2020-7-21 15:48 编辑##### scanner的基本流程:
##### hasNext()与hasNextLine()的判断成分:
###### 使用hasNext()与hasNextLine()字符串前一般要判断下是否还有输入的数据:
通过Scanner 类的next方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
##### 使用nextInt()和nextFloat():
```java
package com.wenjian.scanner;
import java.util.Scanner;
public class demo04 {
public static void main(String[] args) {
//从键盘接收数据
Scanner qwe = new Scanner(System.in);
//定义变量
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
//如果...那么...
if (qwe.hasNextInt()) {
i = qwe.nextInt();
System.out.println("整数数据:" + i);
} else {
System.out.println("输入的不是整数数据!");
}
System.out.println("请输入小数:");
Scanner asd = new Scanner(System.in);
//如果...那么...
if (asd.hasNextFloat()) {
f = asd.nextFloat();
System.out.println("小数数据" + f);
} else {
System.out.println("输入的不是小数");
}
qwe.close();
asd.close();
}
}
输出:
请输入整数:
10
整数数据:10
请输入小数:
10.1
小数数据10.1
进程已结束,退出代码 0
```
##### 一个scanner例题:
###### 可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
```java
package com.wenjian.scanner;
import java.util.Scanner;
public class demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
Scanner qwe = new Scanner(System.in);
//定义变量,和,sum
double sum = 0;
//定义变量,n,计算输入了多少个数字
int n = 0;
while (qwe.hasNextDouble()) {
double x = qwe.nextDouble();
n = n + 1;
sum = sum + x;
System.out.println("你输入了第" + n + "个数据,然后当前结果sum=" + sum);
}
System.out.println(n+ "个数的和为"+sum);
System.out.println(n+"个数的平均值是"+(sum/n));
qwe.close();
}
}
输出:
10
你输入了第1个数据,然后当前结果sum=10.0
20
你输入了第2个数据,然后当前结果sum=30.0
30
你输入了第3个数据,然后当前结果sum=60.0
x
3个数的和为60.0
3个数的平均值是20.0
进程已结束,退出代码 0
``` 几年没写代码了 陌生了 这算是进阶的用法吗?感觉是常用的一些呀
页:
[1]