黑马程序员技术交流社区

标题: 麻烦帮我看一下这个代码为什么会多出来空格 [打印本页]

作者: 考不上黑马    时间: 2015-5-1 16:22
标题: 麻烦帮我看一下这个代码为什么会多出来空格
代码写的思路不是很清闲,辛苦各位了。我只是想知道为什么我的打印结果是
零仟 壹佰零拾壹亿零仟 零佰零拾零万 零仟壹佰零拾壹圆整
留意一下仟后面和万后面多了一个空格,请大神帮忙看下是什么问题。万分感激
  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. }
复制代码



作者: 考不上黑马    时间: 2015-5-1 16:58
找到了,我自己的仟和万后面有空格,操蛋。。。请删帖。。。。
作者: lshaizj    时间: 2015-5-1 17:15
能自己找到 就是进步
作者: 考不上黑马    时间: 2015-5-1 20:48
lshaizj 发表于 2015-5-1 17:15
能自己找到 就是进步

嗯,实在是找了好久都没找到的,贴到这边有点放大的效果所以找到了




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