首页 > 技术文章 > 用java把阿拉伯数字转换成中文数字,怎么做

lidar 2021-06-18 19:18 原文

转载地址:https://zhidao.baidu.com/question/2053114379256640187.html

支持10亿以内

 1 public class Test {
 2     public static void test(int d) {
 3 //        String[] str = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
 4         String[] str = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
 5 //        String ss[] = new String[] { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿" };
 6         String ss[] = new String[] { "个", "十", "百", "千", "万", "十", "百", "千", "亿" };
 7         String s = String.valueOf(d);
 8         System.out.println(s);
 9         StringBuffer sb = new StringBuffer();
10         for (int i = 0; i < s.length(); i++) {
11             String index = String.valueOf(s.charAt(i));
12             sb = sb.append(str[Integer.parseInt(index)]);
13         }
14         String sss = String.valueOf(sb);
15         int i = 0;
16         for (int j = sss.length(); j > 0; j--) {
17             sb = sb.insert(j, ss[i++]);
18         }
19         System.out.println(sb);
20     }
21     public static void main(String[] args) {
22         test(3213);
23         test(912321321);
24     }
25 }

结果

不想要“个”的话就把 ss[] 数组中的“个”改成空

不过毕竟是机械的转换,有零的话不太符合语言习惯

推荐阅读