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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴波 中级黑马   /  2013-5-17 18:31  /  1369 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴波 于 2013-5-21 16:09 编辑

如何将101000001010转换成
壹仟零壹拾亿零壹仟零壹拾圆整

急求代码!!!!

点评

入学考试题最好自己去做,要么做出来也没太大的意义  发表于 2013-5-18 22:17

6 个回复

倒序浏览
做除10运算进行循环啊。
回复 使用道具 举报
  1. package com.itheima;

  2. /**
  3. * @author fjl
  4. *
  5. */
  6. class MoneyConversion{
  7.         //1~10对应的中文繁体,注意顺序,方便后面操作
  8.         public static final char[] MONEYUPPER={'零','壹','貳','叁','肆','伍','陆','柒','捌','玖','拾'};
  9.         //金额面值
  10.         public static final char[] MONEYUNIT={'元','拾','佰','仟','万','拾','佰','仟','亿'};
  11.         /**
  12.          * 金额转换
  13.          * @param money
  14.          * @return 中文传统表示形式
  15.          */
  16.         public static String convertsion(Long money){
  17.                 StringBuilder sb=new StringBuilder();
  18.                 int x=0;
  19.                 while(money!=0){
  20.                         //从低到高为MONEYUNIT数组的声明顺序,每次在最高位插入
  21.                         sb.insert(0, MONEYUNIT[x++]);
  22.                         //System.out.println(sb);//测试
  23.                         //每次取余得到的数所对应的的中文传统大写
  24.                         int num=(int) (money%10);
  25.                         //先插入金额面值,再插入对应面值上的数值金额,如:拾元
  26.                         sb.insert(0, MONEYUPPER[num]);
  27.                         //System.out.println(sb);//测试
  28.                         money/=10;
  29.                 }
  30.                 //某些位上的零+面值去除
  31.                 return sb.toString().replaceAll("零[拾 佰 仟]", "零").
  32.                                 replaceAll("零+万","零").replaceAll("零+元", "元").
  33.                                 replaceAll("零+","零")+"整";
  34.         }
  35. }
  36.    public class Test10 {

  37.         /**
  38.          * @param args
  39.          */
  40.         public static void main(String[] args) {
  41.                 // TODO Auto-generated method stub

  42.                 //测试
  43.                 System.out.println(MoneyConversion.convertsion(new Long(110030020)));
  44.         }

  45. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
fjl_fight 发表于 2013-5-17 18:53

人才啊,加个十百千万等等,我一直没想出来。
谢谢你了
回复 使用道具 举报
吴波 发表于 2013-5-17 19:47
人才啊,加个十百千万等等,我一直没想出来。
谢谢你了

黑马考试题,既然在这里提问,哥们服你了
回复 使用道具 举报
    2楼正解 做除10的操作
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马