本帖最后由 郑飞 于 2014-10-1 01:12 编辑  
 
刚开始写个大概,运行下,越界了,看不懂为啥,上代码:- /**
 
 -  * 金额转换,阿拉伯数字转换成中国传统形式。
 
 -  * 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整
 
 -  * 萬仟佰拾个圆整
 
 -  */
 
 - class Test 
 
 - {
 
 -         public static void main(String[] args) 
 
 -         {
 
 -                 StringBuilder src = new StringBuilder();
 
 -                 StringBuilder dest = new StringBuilder();
 
 -                 src.append("101000001010");//初始化src
 
 -                 System.out.println("src初始化完成:"+src);
 
 -                 
 
 -                 toRmb(src,dest);//调用方法将最终数据存入dest;
 
 -                 System.out.println(dest);
 
 -         }
 
 -         
 
 -         public static void toRmb(StringBuilder src,StringBuilder desc)//每次截取8为,转中文,从src中移除,循环到src==null;
 
 -         {
 
 -                 StringBuilder temp = new StringBuilder();//临时存放8位数中文;
 
 -                 
 
 -                 while(src!=null)
 
 -                 {
 
 -                         if(src.length()<=8)
 
 -                         {
 
 -                                 temp.append(src);//倒入
 
 -                                 System.out.println("if temp:"+temp);
 
 -                                 System.out.println("if src:"+src);
 
 -                                 
 
 -                                 toChinese(temp,desc);
 
 -                                 break;
 
 -                         }
 
 -                         
 
 -                         temp.append(src.substring(src.length()-8));//倒入
 
 -                         src.delete(src.length()-8, src.length());//倒出
 
 -                         toChinese(temp,desc);
 
 -                         temp.delete(0, temp.length());//清空
 
 -                 }
 
 -         }
 
 -         
 
 -         public static void toChinese(StringBuilder temp,StringBuilder desc)
 
 -         {
 
 -                 //定义表格
 
 -                 char[] nums = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};//数字转中文
 
 -                 String[] units = {"拾","佰","仟","萬","拾萬","佰萬","仟萬","亿"};//单位
 
 -                 char[] chs = temp.reverse().toString().toCharArray();//反转,转字符数组
 
 -                 for(int i = 0; i < chs.length; i++)
 
 -                 {
 
 -                         int num = chs[i];
 
 -                         desc.append(nums[num]);
 
 -                         desc.append(units[i]);
 
 -                 }
 
 -         }
 
 - }
 
 
  复制代码 上面这段是改通了 就实现了粗糙的中文打印,没啥用;最后能用的代码放在10楼了; 
 
 
 
 
 
 
 |