1 排序
1.1 Java8 Stream多条件排序的重要方法
Comparator<ITerm> a=(x,y)->x.score-y.score;
Comparator<ITerm> c = a.thenCompareing((x,y)->x.num-y.num);
2 格式化
2.1 Java阿拉伯数字转化为中文数字大写
2.2 Java中文数字转阿拉伯数字
Java中文数字转阿拉伯数字
这个有问题的地方在于:
1、需要将幺替换为一
2、两百二十万零五千,会有问题,需要在return前一句做一个万、亿的前置判断
public static int zh2arbaNum(String zhNumStr) {
Stack<Integer> stack = new Stack<>();
String numStr = "一二三四五六七八九";
String unitStr = "十百千万亿";
String[] ssArr = zhNumStr.split("");
for (String e : ssArr ) {
int numIndex = numStr.indexOf(e);
int unitIndex = unitStr.indexOf(e);
if (numIndex != -1 ) {
stack.push(numIndex + 1);
} else if (unitIndex != -1) {
int unitNum = (int)Math.pow(10, unitIndex + 1);
if (stack.isEmpty()) {
stack.push(unitNum);
} else {
stack.push( stack.pop() * unitNum);
}
}
};
return stack.stream().mapToInt(s-> s).sum();
}