/**
* @Title numberToChinese
* @Description 阿拉伯数字转大写
* @author
* @date 2023/2/1 10:38
* @param number
* @return
* @return: java.lang.String
*/
private String numberToChinese(int number) {
String[] numbers = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
String[] units = {"", "十", "百", "千", "万", "十", "百", "千", "亿", "十"};
String sign = number < 0 ? "负" : "";
if (number < 0) {
number = -number;
}
StringBuilder result = new StringBuilder(sign);
String string = String.valueOf(number);
int n = string.length();
char[] numberCharArray = string.toCharArray();
for (int i = 0; i < n; i++) {
int digNum = n - i; // 位数
int num = numberCharArray[i] - '0';
if (num != 0) {
result.append(numbers[num]).append(units[digNum - 1]);
continue;
}
if (result.toString().endsWith(numbers[0])) {
// 如果是单位所在的位数,则去除上一个0,加上单位
if (digNum % 4 == 1) {
result.deleteCharAt(result.length() - 1);
result.append(units[digNum - 1]);
}
}else{
result.append(numbers[0]);
}
}
return result.toString();
}
阿拉伯数字转大写
最新推荐文章于 2024-11-01 14:48:20 发布
该代码段定义了一个Java方法numberToChinese,用于将整数转换为其中文大写形式。方法中使用了两个字符串数组,一个存储数字对应的中文字符,一个存储位值单位。对于负数,添加“负”字。然后,从低位到高位遍历数字,根据数值和位数添加相应的中文字符和单位。
摘要由CSDN通过智能技术生成