NumberToCH.java
4.3 KB
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.tools.tts.utils;
/**
* Create by zhp on 2021/2/6
* Description:
*/
public class NumberToCH {
public static String dateToCH(String date) {
String ss[] = date.split(" ");
StringBuilder builder = new StringBuilder();
if (ss.length == 2) {
dateYearToCH(builder, ss[0]);
dateHourToCH(builder, ss[1]);
} else if (ss.length == 1) {
if (date.contains("-")) {
dateYearToCH(builder, date);
} else {
dateHourToCH(builder, date);
}
} else {
builder.append(date);
}
return builder.toString();
}
private static void dateHourToCH(StringBuilder builder, String date) {
String[] ss = date.split(":");
if (ss.length != 3) {
builder.append(date);
return;
}
builder.append(stringNumberToCH(ss[0]))
.append("点")
.append(stringNumberToCH(ss[1]))
.append("分")
.append(stringNumberToCH(ss[2]))
.append("秒");
}
private static void dateYearToCH(StringBuilder builder, String date) {
String[] ss = date.split("-");
if (ss.length != 3) {
builder.append(date);
return;
}
char[] year = ss[0].toCharArray();
for (int i = 0; i < year.length; i++) {
builder.append(getCH(Integer.valueOf(String.valueOf(year[i])), true));
}
builder.append("年")
.append(stringNumberToCH(ss[1]))
.append("月")
.append(stringNumberToCH(ss[2]))
.append("日");
}
public static String stringNumberToCH(String number) {
if (number == null) {
return null;
}
number = number.trim();
if (number.startsWith("0")) {
number = number.substring(1);
}
try {
return numberToCH(Integer.valueOf(number));
} catch (Exception e) {
return number;
}
}
public static String numberToCH(int intInput) {
String si = String.valueOf(intInput);
String sd = "";
if (si.length() == 1) {// 個
sd += getCH(intInput);
return sd;
} else if (si.length() == 2) {// 十
if (si.startsWith("1"))
sd += "十";
else
sd += (getCH(intInput / 10) + "十");
sd += numberToCH(intInput % 10);
} else if (si.length() == 3) {// 百
sd += (getCH(intInput / 100) + "百");
int mode = intInput % 100;
if (mode != 0 && String.valueOf(mode).length() < 2)
sd += "零";
sd += numberToCH(mode);
} else if (si.length() == 4) {// 千
sd += (getCH(intInput / 1000) + "千");
int mode = intInput % 1000;
if (mode != 0 && String.valueOf(mode).length() < 3)
sd += "零";
sd += numberToCH(mode);
} else if (si.length() == 5) {// 萬
sd += (getCH(intInput / 10000) + "萬");
int mode = intInput % 10000;
if (mode != 0 && String.valueOf(mode).length() < 4)
sd += "零";
sd += numberToCH(mode);
}
return sd;
}
private static String getCH(int input, boolean includeZero) {
String sd = "";
switch (input) {
case 0:
sd = includeZero ? "零" : "";
break;
case 1:
sd = "一";
break;
case 2:
sd = "二";
break;
case 3:
sd = "三";
break;
case 4:
sd = "四";
break;
case 5:
sd = "五";
break;
case 6:
sd = "六";
break;
case 7:
sd = "七";
break;
case 8:
sd = "八";
break;
case 9:
sd = "九";
break;
default:
break;
}
return sd;
}
private static String getCH(int input) {
return getCH(input, false);
}
}