正则表达式
一 判断小数整数
package com.flower.scanner;
import java.util.Scanner;
public class Demo04 {
static void main(String[] args) {
//接收键盘数据
Scanner scanner = new Scanner(System.in);
//存入数据
int i = 0;
String str;
System.out.println("请输入整数:");
//如果......那么 判断输入的数据,是否为整数数据
if (scanner.hasNextInt()) {
//将接受到的整数存入变量i中
i = scanner.nextInt();
System.out.println("整数数据:"+i);
} else {
System.out.println("输入的不是整数数据!");
}
System.out.println("请输入小数:");
//判断输入的数据,是否为小数数据
if (scanner.hasNextFloat()) {
//接收小数数据
str = scanner.next();
//matches(regex) = 判断「整个字符串」是不是「从头到尾完全符合正则规则」,是就返回 true,否则 false。
if (str.matches("\\d+\\.\\d+")) {
System.out.println("小数数据:"+str);
} else {
System.out.println("输入的是整数:"+str+",不是小数!");
}
} else {
System.out.println("输入的不是有效数据!");
}
//关闭流
scanner.close();
}
}
二 输入多个数字求平均数
package com.flower.scanner;
import java.util.Scanner;
public class Demo06 {
static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入,并输出执行结果。
//获取键盘输入
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int countNum = 0;
//通过循环来判断是否还有输入,并在里面对每一次输入,进行求和和统计
while (scanner.hasNextDouble()) {
//获取输入的数
double totalNum = scanner.nextDouble();
//输入次数
countNum = countNum + 1; // countNum++
//总和
sum = sum + totalNum;
System.out.println("你输入了第"+countNum+"个数据,当前结果sum="+sum);
//System.out.println(STR."你输入了第\{countNum}个数据,当前结果sum=\{sum}");
}
System.out.println(countNum+"个数字的和为:"+sum);
System.out.println(countNum+"个数字的平均值为:" + (sum / countNum));
//不用拼接,可读性更好,可能不兼容
//System.out.println(STR."\{countNum}个数字的平均值为:\{sum / countNum}");
//关闭流
scanner.close();
}
}