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)); } }