mitao
2024-04-07 5980a5fed8092f9866cb2f6a8b74abb7d631c018
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.ruoyi.common.utils;
 
public class NumberDisplaceChineseUtil {
 
    final static String[] unitArray= {"","十","百","千","万","十","百","千","亿","十","百","千","万"};
    final static String[] numArray = {"零","一","二","三","四","五","六","七","八","九"};
 
    public static String numberToChinese(Integer number) throws Exception{
        if (number == null) {
            return "";
        }
        if (number == 0) {
            return "零";
        }
        char[] charArray= String.valueOf(number).toCharArray();
        int arrayLength = charArray.length;
        StringBuilder stringBuilder = new StringBuilder();
 
        for(int i = 0; i<arrayLength; i++){
            int num = Integer.valueOf(charArray[i] + "");
            boolean isZero = num == 0;
            String unit = unitArray[(arrayLength - 1) - i];
            if (isZero) {
                continue;
            }else {
                if(i==0){
                    stringBuilder.append(numArray[num]);
                    stringBuilder.append(unit);
                }else{
                    if(charArray[i-1]=='0'){
                        stringBuilder.append("零");
                        stringBuilder.append(numArray[num]);
                        stringBuilder.append(unit);
                    }else{
                        stringBuilder.append(numArray[num]);
                        stringBuilder.append(unit);
                    }
                }
            }
        }
        String numString = stringBuilder.toString();
        if(numString.length() > 1){
            if(numString.toCharArray()[0]== '一' && numString.toCharArray()[1] == '十'){
                return numString.substring(1);
            }
        }
        return numString;
    }
 
    public static void main(String[] args) throws Exception {
        String s = numberToChinese(1234567890);
        System.out.println(s);
    }
}