怎么做,(刚刚入门)

从键盘录入一行字符串,里面有字母、整数和小数形式(如:“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());
    }
}

运行结果如下:

img

有没有可能出现
abc-12cd42-dsa
字母和数字都有的这种情况?

  1. 定义一个字符串处理器类,类中定义String类型成员变量用于接收控制台输入字符串,定义包含string类型的构造函数,定义两个成员方法分别用于计算字符串中整型数据之和浮点数数据的平均值
  2. 实现类中成员方法,思路如下:按照-拆分字符串得到字符串数组,遍历数组,对整型求和,对浮点型求平均值
  3. 测试代码,新建测试类,实现main方法,创建Scanner对象,获取控制台输入字符串,创建字符串处理器对象,通过有参构造传入控制台输入的字符串,调用该对象的计算方法计算结果