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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码写的思路不是很清闲,辛苦各位了。我只是想知道为什么我的打印结果是
零仟 壹佰零拾壹亿零仟 零佰零拾零万 零仟壹佰零拾壹圆整
留意一下仟后面和万后面多了一个空格,请大神帮忙看下是什么问题。万分感激
  1. package li.muzi;
  2. /*10、  金额转换,阿拉伯数字转换成中国传统形式。

  3. 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整*/
  4. public class FuXi {
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.         System.out.println(china(101000001010l));
  8.         }
  9.         //金额转换函数,接收Long型的数据
  10.         public static String china(Long lg){
  11.                 StringBuilder strb = new StringBuilder();        //创建一个容器添方便字符串更改
  12.                 String str = lg.toString();                        //数字转换成字符串               
  13.                 char[] chs = str.toCharArray();                //字符串转换成字符数组               
  14.                 for(int x=chs.length-1;x>=0;x--){                //判断第一个数字的位数
  15.                         //if(++y<chs.length)                                //读取位数上的值,第0位对应数字的最高位                                       
  16.                                 strb.append(zhi(chs[x]));                                                               
  17.                                 strb.append(wei(x));
  18.                 }
  19.                 return strb.toString();                       
  20.         }
  21.         //用位数上的数字去查找相应的汉字
  22.         public static String zhi(char ch){

  23.                 switch(ch){
  24.                 case '0':
  25.                         return "零";
  26.                 case '1':
  27.                         return "壹";
  28.                 case '2':
  29.                         return "贰";
  30.                 case '3':
  31.                         return "叁";
  32.                 case '4':
  33.                         return "肆";
  34.                 case '5':
  35.                         return "伍";
  36.                 case '6':
  37.                         return "陆";
  38.                 case '7':
  39.                         return "柒";
  40.                 case '8':
  41.                         return "捌";
  42.                 case '9':
  43.                         return "玖";
  44.                 default :
  45.                         return null;       
  46.                 }                                       
  47.         }
  48.        
  49.         //用对应的角标去查位数的大写
  50.         public static String wei(int x){
  51.                 String[] str ={"圆整","拾","佰","仟","万 ","拾","佰","仟 ","亿","拾","佰","仟 ","万 "};
  52.                 return str[x];                               
  53.         }
  54. }
复制代码


3 个回复

倒序浏览
找到了,我自己的仟和万后面有空格,操蛋。。。请删帖。。。。
回复 使用道具 举报
能自己找到 就是进步
回复 使用道具 举报
lshaizj 发表于 2015-5-1 17:15
能自己找到 就是进步

嗯,实在是找了好久都没找到的,贴到这边有点放大的效果所以找到了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马