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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 549208564 中级黑马   /  2016-1-19 22:34  /  515 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

运行代码后,会发现1千后面还有个0...这个无语啊,想不到怎么解决,请大神指导,怎么解决,还可以用什么方法去实现这样的数呢?

/**
* 金额转换,阿拉伯数字转换成中国传统形式。
* 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整  
* @author Jun
*         1:定义两个字符串数组,用来存入阿拉伯数字String[] str与单位String[] str1
*         2:将传入进来的数据转为字符串类型toString()方法;因为int类型可能不句,所以进long类型
*         3:定义一个字符数组,将传入的数据进行切割,使用split()方法
*         4:创建一个符串对象,将每次得到的字符加到入这个对象中,最后在返回
*         5:进行循环判断,在对应的单位数上与入相应的单位
*
*/
public class Test10 {
        public static void main(String[] args) {
                System.out.println(transform(1000l));
        }
        public static String transform(Long it){
               
                //定义两个字符串数组,用来存入阿拉伯数字与单位
                String[] str={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
                String[] str1={"拾","佰","仟","萬","亿"};
                //将传入进来的数据转为字符串类型
                String str2=Long.toString(it);
                //定义一个字符数组,将传入的数据进行切割
                String[] str3=str2.split("");
                //判断,如果传入进来的数字过长或没有数字,就直接返回数据有误,不在转换
                if(str3.length<1||str3.length>12)
                        return "输入的数据有误,请重新输入 ";
                //创建一个符串对象,将每次得到的字符加到入这个对象中,最后在返回
                String str4="";
                for(int x=0;x<str3.length;x++){
                        //定义一个变量,得到从最后一个数字到当前数字的这个数字是第几位
                        int y=str3.length-x;
                        int num=Integer.parseInt(str3[x]);
                        //当个位数上为零时,直接结束程序
                        if((y==1||y==5||y==9)&&num==0){
                                //当个,万,亿位上的数都为0时,不用写入零
                        }else {
                                str4=str4.concat(str[num]);
                        }
                        //在十位数上加上"拾"字符
                        if((y==2||y==6||y==10)&&num!=0){str4=str4.concat(str1[0]);}
                        //在千位数上加上"仟"字符
                        if((y==3||y==7||y==11)&&num!=0){str4=str4.concat(str1[1]);}
                        //在百位数上加上"佰"字符
                        if((y==4||y==8||y==12)&&num!=0){str4=str4.concat(str1[2]);}
                        //在万位数上加上"萬"字符
                        if(y==5){str4=str4.concat(str1[3]);}
                        //在亿位数上加上"亿"字符
                        if(y==9){str4=str4.concat(str1[4]);}
                }
                return str4+"圆整";
               
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马