黑马程序员技术交流社区

标题: 求助。。 [打印本页]

作者: 911288373    时间: 2013-1-1 16:26
标题: 求助。。
public class Test10 {

public static String[] cn={"仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","圆整"};
public static String[] number={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
public static String getString(long n)
{
String money=""+n;
if(money.length()>cn.length)
return "钱太多";
String str="";
for(long i=0;i<money.length();i++)
str+=number[Integer.parseInt(""+money.charAt(i))]+cn[cn.length-money.length()+i];
return str;
}
public static void main(String[] args) {
System.out.print(getString(101000001010));
}
}

帮忙优化下吧  101000001010  把它转了。  
作者: 冉世友    时间: 2013-1-1 18:41
101000001010  这个数代表int 型 越界了,

末尾应该添加一个L或小写l。
作者: 莫嘉伟    时间: 2013-1-1 19:36
楼主把你的程序改成下面这样试试,道先是传入参数啦,你传整型数默认是int类型的,你要传个long型数进去就要加个大写L或小写l在数的后面,另外long类开支是没有charAt()方法的·,所以将i改成int类型··致于功能方面·先不想了,我该说我是来抢加分机会的吗··
public class Test {
        public static String[] cn={"仟亿","佰亿","拾亿","亿","仟万","佰万","拾万","万","仟","佰","拾","圆整"};
        public static String[] number={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        public static String getString(long n)
         {
         String money=""+n;
         if(money.length()>cn.length)
         return "钱太多";
        String str="";
         for(int i=0;i<money.length();i++)
         str+=number[Integer.parseInt(""+money.charAt(i))]+cn[cn.length-money.length()+i];
         return str;
         }
         public static void main(String[] args) {
         System.out.print(getString(101000001010l));
         }
}




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