黑马程序员技术交流社区

标题: 数字转换为中文描述 [打印本页]

作者: kingmask    时间: 2016-4-27 23:00
标题: 数字转换为中文描述
.
public class Test31 {
   private static final char[] data = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
   private static final char[] units = {'圆','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟'};

   public static voidmain(String[] args) throws Exception{
      // TODOAuto-generated method stub
      while(true){
         Scanner scan = newScanner(System.in);
         int lon =scan.nextInt();
         System.out.println(convert(lon));
         scan.close();
      }
   }

   private static String convert(int money) throws Exception{
      StringBuilder sb = new StringBuilder();
      int uint = 0;
      while(money!=0){
            //插入到前面从最小位数开始取
         sb.insert(0, units[uint++]);
            //插入到最前面,系数
         sb.insert(0, data[(int)(money%10)]);      
           money = money / 10;
      }
        //使用替换的正则表达式将多余的零替换
      return sb.toString().replaceAll("零[仟佰拾]"//仟或佰或拾, "零").replaceAll("零//一个或多个零+万", "万")
            .replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
            .replaceAll("零+", "零").replaceAll("零圆", "圆");
   }

}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2