test round grades

/**
     * test round grades
     * grade lesss than 38 ->round to 38
     * grade grate than 38 less than 40 ->round to 40
     * if grade is 100 donot need be rounded
     * if grade's first bit is between [0-5] , first bit number need be minused into a number and compare with 3
     * if step 5 unit minus first bit number and result less than 3 , grade's first bit number need be rounded into 5
     * if grade's first bit is between (5,10), first bit number need be minused into a number and compare with 3
     * if step 10 unit minus first bit number and result less than 3 , grade's first bit number need be round into 0 and
     * digit bit number need be rounded into a number steped by plusing 1
     * first bit is defined from right to left
     * @param grades
     * @return
     */
    public static List<Integer> gradingStudents(List<Integer> grades){
        if (grades==null){
            return null;
        }
        if (grades.isEmpty()){
            return null;
        }
        if (grades.size()<0 || grades.size()>60){
            return null;
        }
        for (Integer grade : grades) {
            if (grade<0 || grade>100){
                return null;
            }
        }
        ArrayList<Integer> finalSCoreList = new ArrayList<>();
        grades.forEach(e->{
            if (e<38){
                finalSCoreList.add(e);
            } else if (e>=38 && e<=40) {
                e = 40;
                finalSCoreList.add(e);
            }else if (e==100){
                finalSCoreList.add(e);
            } else {
                String s = String.valueOf(e);
                String substring = s.substring(1);
                Integer i = Integer.valueOf(substring);
                if (i>=0 && i<=5){
                    String substring1 = s.substring(0, 1);
                    StringBuilder stringBuilder = new StringBuilder();
                    stringBuilder.append(substring1);
                    String string = stringBuilder.toString();
                    Integer i1 = Integer.valueOf(string);
                    int i2 = 5 - i1;
                    if (i2<3){
                        stringBuilder.append("5");
                    }else {
                        stringBuilder.append(i);
                    }
                    finalSCoreList.add(Integer.valueOf(stringBuilder.toString()));
                } else if (i>5 && i<10) {
                    String substring1 = s.substring(0, 1);
                    StringBuilder stringBuilder = new StringBuilder();
                    Integer i1 = Integer.valueOf(substring1);
                    int i2 = 10- i;
                    if (i2<3){
                        i1+=1;
                        stringBuilder.append(i1);
                        stringBuilder.append(0);
                    }else {
                        stringBuilder.append(s);
                    }
                    String string = stringBuilder.toString();
                    finalSCoreList.add(Integer.valueOf(string));
                }
            }
        });
        return finalSCoreList;
    }

#如果公司给你放一天假,你会怎么度过?#
Java技术 文章被收录于专栏

JavaEE技术 编程开发经验 企业通用技术

全部评论

相关推荐

東大沒有派對:这是好事啊(峰哥脸
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务