地质所 沉降监测网建设项目
zmk
2024-05-16 6cc8b13ee47303a907f8e57b018406c46d8928e4
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.javaweb.common.utils;
 
 
public class ChineseNumberUtil {
 
    public static int solve(String s) {
        int i = s.indexOf("万");
        if (i != -1) {
            int l = solve(s.substring(0, i));
            int r = solve(s.substring(i+1));
            return l*10000 + r;
        }
        i = s.indexOf("千");
        if (i != -1) {
            int l = solve(s.substring(0, i));
            int r = solve(s.substring(i+1));
            return l*1000 + r;
        }
        i = s.indexOf("百");
        if (i != -1) {
            int l = solve(s.substring(0, i));
            int r = solve(s.substring(i+1));
            return l*100 + r;
        }
        i = s.indexOf("十");
        if (i != -1) {
            int l = solve(s.substring(0, i));
            if (l == 0)
                l = 1;
            int r = solve(s.substring(i+1));
            return l*10 + r;
        }
        i = s.indexOf("零");
        if (i != -1) {
            int l = solve(s.substring(0, i));
            int r = solve(s.substring(i+1));
            return l + r;
        }
        i = 0;
        switch (s) {
            case "九":
                return 9;
            case "八":
                return 8;
            case "七":
                return 7;
            case "六":
                return 6;
            case "五":
                return 5;
            case "四":
                return 4;
            case "三":
                return 3;
            case "二":
                return 2;
            case "一":
                return 1;
        }
        return 0;
    }
    public static String solve(int n) {
        int w = n / 10000, q = n / 1000, b = n / 100, s = n / 10;
        if (w > 0) {
            String l = solve(n/10000);
            String r = solve(n%10000);
            if ((n%10000)/1000 == 0)
                r = "零" + r;
            return l + "万" + r;
        }
        if (q > 0) {
            String l = solve(n/1000);
            String r = solve(n%1000);
            if ((n%1000)/100 == 0)
                r = "零" + r;
            return l + "千" + r;
        }
        if (b > 0) {
            String l = solve(n/100);
            String r = solve(n%100);
            if ((n%100)/10 == 0)
                r = "零" + r;
            return l + "百" + r;
        }
        if (s > 0) {
            String l = solve(n/10);
            String r = solve(n%10);
            return l + "十" + r;
        }
        switch (n){
            case 1:
                return "一";
            case 2:
                return "二";
            case 3:
                return "三";
            case 4:
                return "四";
            case 5:
                return "五";
            case 6:
                return "六";
            case 7:
                return "七";
            case 8:
                return "八";
            case 9:
                return "九";
        }
        return "";
    }
 
    public static void main(String[] args) {
        System.out.println(solve("五百七十八"));
        System.out.println(solve(3786));
    }
}