代码写的思路不是很清闲,辛苦各位了。我只是想知道为什么我的打印结果是
零仟 壹佰零拾壹亿零仟 零佰零拾零万 零仟壹佰零拾壹圆整
留意一下仟后面和万后面多了一个空格,请大神帮忙看下是什么问题。万分感激- package li.muzi;
- /*10、 金额转换,阿拉伯数字转换成中国传统形式。
- 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整*/
- public class FuXi {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(china(101000001010l));
- }
- //金额转换函数,接收Long型的数据
- public static String china(Long lg){
- StringBuilder strb = new StringBuilder(); //创建一个容器添方便字符串更改
- String str = lg.toString(); //数字转换成字符串
- char[] chs = str.toCharArray(); //字符串转换成字符数组
- for(int x=chs.length-1;x>=0;x--){ //判断第一个数字的位数
- //if(++y<chs.length) //读取位数上的值,第0位对应数字的最高位
- strb.append(zhi(chs[x]));
- strb.append(wei(x));
- }
- return strb.toString();
- }
- //用位数上的数字去查找相应的汉字
- public static String zhi(char ch){
- switch(ch){
- case '0':
- return "零";
- case '1':
- return "壹";
- case '2':
- return "贰";
- case '3':
- return "叁";
- case '4':
- return "肆";
- case '5':
- return "伍";
- case '6':
- return "陆";
- case '7':
- return "柒";
- case '8':
- return "捌";
- case '9':
- return "玖";
- default :
- return null;
- }
- }
-
- //用对应的角标去查位数的大写
- public static String wei(int x){
- String[] str ={"圆整","拾","佰","仟","万 ","拾","佰","仟 ","亿","拾","佰","仟 ","万 "};
- return str[x];
- }
- }
复制代码
|
|