字符串中的数据封装到雇员对象,计算员工的平均薪资

首页 » 技术栈 » 字符串中的数据封装到雇员对象,计算员工的平均薪资

任务描述

给一个字符串 name=小红&age=17&salary=8000.00&hireDate=1991-07-03;name=小明&age=23&salary=10000.00&hireDate=1992-12-11;name=小白&age=18&salary=12000.00&hireDate=1996-01-09,请把字符串中的数据封装到 Employee 的对象中,类 Employee 有 name(String 类型)、age(int 类型)、salary(薪水是 BigDecimal 类型)、hireDate(入职日期是 Date 类型) 四个字段且符合 JavaBean 规范
把三个创建的对象存放数组中,求出在 1996 年前入职的员工的的平均薪资。

实现思路

创建一个二维数组,用来装二次切割后的所有数据,创建3个对象,给每个对象属性赋值,同时查询符合条件的员工的薪资总数和员工个数

实现代码

public class EmployeeDeom {
public static void main (String[] args) throws Exception {

    // 累加器 用来累加员工的工资
    BigDecimal sum = new BigDecimal("0");
    // 计数器 记录符合条件的员工由多少人
    BigDecimal count = new BigDecimal("0");

    String str = "name=小红&age=17&salary=8000.00&hireDate=1991-07-03;name=小明&age=23&salary=10000.00&hireDate=1992-12-11;name=小白&age=18&salary=12000.00&hireDate=1996-01-09";
    // 进行第一次切割
    String[] arr = str.split(";");
    // 创建一个二维数组,用来装二次切割后的数据
    String[][] arr0 = new String[3][4];
    for (int i = 0; i < arr.length; i++) {
        // 二次切割
        arr0[i] = arr[i].split("&");
    }
    // 进行迭代循环
    for (int i = 0; i < arr0.length; i++) {
        // 我们分割后拿到的也是一个数组 用equals方法筛选字符,把对应值保留
        for (int j = 0; j < arr0[i].length; j++) {
            String[] arrs = (arr0[i][j]).split("=");
            if ("name".equals(arrs[0])) {
                arr0[i][j] = arrs[1];
            }
            if ("age".equals(arrs[0])) {
                arr0[i][j] = arrs[1];
            }
            if ("salary".equals(arrs[0])) {
                arr0[i][j] = arrs[1];
            }
            if ("hireDate".equals(arrs[0])) {
                arr0[i][j] = arrs[1];
            }
        }
    }
    // 创建3个对象
    Employee e1 = new Employee();
    Employee e2 = new Employee();
    Employee e3 = new Employee();
    // 将对象装进Employee类型的数组
    Employee[] e = {e1, e2, e3};
    // 迭代循环 给每个对象的属性赋值
    for (int i = 0; i < e.length; i++) {
        e[i].setName(arr0[i][0]);
        e[i].setAge(Integer.parseInt(arr0[i][1]));
        e[i].setSalary(new BigDecimal(arr0[i][2]));
        e[i].setHireDate(new SimpleDateFormat("yyyy-MM-dd").parse(arr0[i][3]));

        // 调用Date中的dade方法获取96之前的员工 符合条件进行累加
        if (e[i].getHireDate().before(new Date(96, 0, 1))) {
            sum = sum.add(e[i].getSalary());
            count = count.add(new BigDecimal("1"));
        }

    }

/* 输出符合条件的员工平均工资 */
    System.out.println(sum.divide(count).toString());
}

}


打赏 赞(1)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

大家好!欢迎光临我的博客,在下就是闭月羞花沉鱼落雁才高八斗貌似天仙玉树凌风赛潘安一枝梨花压海棠人送外号上天下地无所不能美貌与智慧并存、古典与活泼的化身~~
觅·You小栈» 字符串中的数据封装到雇员对象,计算员工的平均薪资

版权声明: 本站原创文章,于2016年06月12日由觅·You发布,转载请注明出处

该篇文章的评论功能已被站长关闭

亭边总有花影,与我消遣一段旖旎的小时光

立即查看 联系作者
正在获取,请稍候...
00:00/00:00