从键盘录入一行字符串,里面有字母、整数和小数形式(如:“abc-12-ddd-15.6-28-14.4-kuf”),请计算字符串中所有整数形式字符串对应整数之和、所有小数形式字符串对应小数的平均值(采用函数定义和调用的方式)。
示例代码如下:
public class Test {
public static void main(String[] args) {
System.out.println("请输入:");
Scanner scanner = new Scanner(System.in);
String[] strs = scanner.nextLine().split("-");
List<Integer> nums1 = new ArrayList<>();
List<Double> nums2 = new ArrayList<>();
for (String str : strs) {
try {
Integer num = Integer.valueOf(str);
nums1.add(num);
} catch (NumberFormatException e1) {
try {
Double num = Double.valueOf(str);
nums2.add(num);
} catch (NumberFormatException ignored) {
}
}
}
System.out.println("整数和:" + nums1.stream().reduce(Integer::sum).orElse(0));
System.out.println("小数平均值:" + nums2.stream().reduce(Double::sum).orElse(0d) / nums2.size());
}
}
运行结果如下:
有没有可能出现
abc-12cd42-dsa
字母和数字都有的这种情况?