A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© kingmask 中级黑马   /  2016-4-27 23:00  /  346 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.
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("零圆", "圆");
   }

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马