publicclassNumberToChinese{privatestaticfinalString[] units ={"","十","百","千","万","十","百","千","亿"};privatestaticfinalString[] digits ={"零","一","二","三","四","五","六","七","八","九"};publicstaticStringnumberToChinese(int num){if(num ==0){return"零";}StringBuilder chinese =newStringBuilder();String numStr =String.valueOf(num);int length = numStr.length();boolean isZero =false;// 记录上一个数字是否为零for(int i =0; i < length; i++){int digit = numStr.charAt(i)-'0';// 取得每一位的数字int position = length - i -1;// 位置从高到低if(digit ==0){
isZero =true;}else{if(isZero){
chinese.append(digits[0]);
isZero =false;}
chinese.append(digits[digit]).append(units[position]);}}// 特殊情况处理:去掉以“一十”开头的“零”String result = chinese.toString();if(result.startsWith("一十")){
result = result.substring(1);}return result;}//测试案例publicstaticvoidmain(String[] args){int number =123456789;String chineseNumber =numberToChinese(number);System.out.println("Number: "+ number +" in Chinese: "+ chineseNumber);
number =1001;
chineseNumber =numberToChinese(number);System.out.println("Number: "+ number +" in Chinese: "+ chineseNumber);
number =10;
chineseNumber =numberToChinese(number);System.out.println("Number: "+ number +" in Chinese: "+ chineseNumber);}}