阿拉伯数字转换为汉字
下面展示一些 内联代码片
。
零
十
十一
public class DigitizerUtils {
static String[] units = {"", "十", "百", "千", "万", "十万", "百万", "千万", "亿",
"十亿", "百亿", "千亿", "万亿"};
static String[] numArray = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
public static String chineseConversion(int num) {
char[] val = String.valueOf(num).toCharArray();
int len = val.length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; i++) {
String m = val[i] + "";
int n = Integer.parseInt(m);
boolean isZero = n == 0;
//单位
String unit = units[(len - 1) - i];
if (isZero) {
sb.append(numArray[n]);
} else {
if (len == 2) {
if (i == 0 && n == 1) {
sb.append(unit);
} else {
sb.append(numArray[n]);
sb.append(unit);
}
} else {
sb.append(numArray[n]);
sb.append(unit);
}
}
}
String result = sb.toString();
String last = result.substring(sb.length() - 1);
while (len > 1 && numArray[0].equals(last)) {
result = result.substring(0, result.length() - 1);
last = result.substring(result.length() - 1);
}
return result;
}
public static void main(String[] args) {
System.out.println(chineseConversion(0));
System.out.println(chineseConversion(10));
System.out.println(chineseConversion(11));
System.out.println(chineseConversion(100));
}
}