/**
* 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;
}
posted on 2025-03-02 23:20  CoderOilStation  阅读(12)  评论(0)    收藏  举报