标题:这个程序什么意思呀
只看楼主
ggggwffgqeg
Rank: 2
等 级:论坛游民
帖 子:40
专家分:11
注 册:2009-5-10
结帖率:100%
已结贴  问题点数:15 回复次数:5 
这个程序什么意思呀
//  123.04怎么变一百二十三点零四
public class TestBigChar {
   
    public static char[] characters = {'零','一','二','三','四','五','六','七','八','九'};
    public static char[] units = {'点','十','百','千'};
   
    public static void main(String[] args) {
        System.out.println(convert(123.04));
    }

    public static String convert(double d){
        String val = d+""; //d+""什么意思呀。
        String convert = "";
        int index = val.indexOf('.');//这句什么意思呀 val.indexOf有什么用呀。
        for(int i=0;i<val.length();i++){
            convert += i==index?units[0]:characters[Integer.parseInt(val.substring(i,i+1))]; //不明白
            if(i<index)
                convert += units[index-i];
        }
        return convert;
    }
   
}
谁帮忙给个详细的帮助呀。

搜索更多相关主题的帖子: index 
2009-10-13 23:11
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
得分:0 
先将double数转为字符串,再对字符串进行操作

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-10-14 08:05
dadongzicool
Rank: 6Rank: 6
等 级:贵宾
威 望:11
帖 子:209
专家分:474
注 册:2009-3-20
得分:15 
public class TestBigChar {
     
    public static char[] characters = {'零','一','二','三','四','五','六','七','八','九'};
    public static char[] units = {'点','十','百','千'};
     
    public static void main(String[] args) {
        System.out.println(convert(123.04));
    }
 
    public static String convert(double d){
        String val = d+""; //d+""什么意思呀。------字符串的连接,这样数字123.04就变成了字符串123.04;
        String convert = "";
        int index = val.indexOf('.');//这句什么意思呀 val.indexOf有什么用呀。---查找“.”在字符串中的位置
        for(int i=0;i<val.length();i++){
            convert += i==index?units[0]:characters[Integer.parseInt(val.substring(i,i+1))]; //不明白
   /*
            以上是一个三元运算,变成正常的就是
            {if(i==index)
                convert=convert+units[0]; ---- 这里+也是字符串的链接
            else
                convert=convert+characters[Integer.parseInt(val.substring(i,i+1))]; substring用来获得字符串val中第i个字符(实际上也是字符串),Integer.parseInt把获得的字符转换成数字
 }
   */           

 if(i<index)
                convert += units[index-i];
        }
        return convert;
    }
     
}


最后说一下楼主的代码有点问题 输出 是 一千二百三十点零四
  
把for循环内的if语句改成如下即可

 for(int i=0;i<val.length();i++){
            convert += i==index?units[0]:characters[Integer.parseInt(val.substring(i,i+1))]; //不明白
            if(i<index-1)
                convert += units[index-i-1];
        }
原因是 个位数字 也是和小数点后面的数字一样直接读出来 而不用再后面加东西



很好的一段程序  只是细节上出了一点问题

本人出售软件专业毕业设计(包括论文,代码)题目众多,价格从优联系方式:QQ
1635008514(寻找高校代理)
2009-10-15 04:17
ggggwffgqeg
Rank: 2
等 级:论坛游民
帖 子:40
专家分:11
注 册:2009-5-10
得分:0 
谢谢。
2009-10-15 17:12
lbr2008
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-11-29
得分:0 
程序运行一下,然后分析作用,感觉不难哦
2009-10-18 17:20
ggggwffgqeg
Rank: 2
等 级:论坛游民
帖 子:40
专家分:11
注 册:2009-5-10
得分:0 
看看以前发的贴子,感觉有点幼稚,挺简单的问题,都不会。
但只有遇到问题解决问题,自己才能不断的提高。语言只是一门工具。
思想才是王道。
2011-03-09 15:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-288435-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019502 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved