MyException - 我的异常网
当前位置:我的异常网» J2SE » 求Java 数目字转成英文 需要原创 + 注释 急300分

求Java 数目字转成英文 需要原创 + 注释 急300分(4)

www.MyException.Cn  网友分享于:2013-12-19  浏览:67次

学习下
------解决方案--------------------
三花聚顶~
------解决方案--------------------
顶一下
------解决方案--------------------
顶两下行不行?
------解决方案--------------------
有没有小数?
------解决方案--------------------
路过。。。
------解决方案--------------------
顶顶顶
------解决方案--------------------
有点意思
------解决方案--------------------
顶一下
------解决方案--------------------
不写了,蹭个分!
------解决方案--------------------
顶一下
------解决方案--------------------
以前有人问过一个类似的问题
http://topic.csdn.net/u/20110726/17/340f95e3-d2ea-41c9-94a4-d59c48c811a5.html

把当时在原贴的答复拷贝过来。在该基础上稍微改一改就可以了
现在新换的本本,没有java环境,所以修改版本暂时保留。
Java code
class Matrix {   
    public static final String[] baseTable = {
        "zero", "one", "tow", "three", "four", "five",
        "six", "seven", "eight", "nine", "ten",
        "eleven", "twelve", "thirteen", "fourteen", "fifteen",
        "sixteen", "seventeen", "eighteen", "nineteen", "twenty",
        "", "", "", "", "", "", "", "", "", "thirty",
        "", "", "", "", "", "", "", "", "", "fourty",
        "", "", "", "", "", "", "", "", "", "fifty",
        "", "", "", "", "", "", "", "", "", "sixty",
        "", "", "", "", "", "", "", "", "", "seventy",
        "", "", "", "", "", "", "", "", "", "eighty",
        "", "", "", "", "", "", "", "", "", "ninety"
    };
        
    public static final String[] unitTable = {"hundred", "thousand"};
    
    public static void main(String[] args) {
        int sum = 0;
        for (int i=1; i<=1000; i++) {
            String s = analyze(i);
            System.out.println(s);
            sum += s.length();
        }
        System.out.println(sum);
    }

    public static String analyze(int num) {
        if (num < 0) {return "";}
        
        StringBuilder buf = new StringBuilder();
        if (num < 20) {
            return baseTable[num];
        } else if (num < 100) {
            if (num%10 == 0) {
                buf.append(baseTable[num]);
            } else {
                buf.append(baseTable[num-num%10]);
                buf.append(baseTable[num%10]);
            }
        } else if (num < 1000) {
            buf.append(baseTable[num/100]).append(unitTable[0]);
            if (num%100 != 0) {
                buf.append("and");
                buf.append(analyze(num%100));
            }
        } else if (num < 10000) {
            buf.append(baseTable[num/1000]).append(unitTable[1]);
            if (num%1000 != 0) {
                buf.append("and");
                buf.append(analyze(num%1000));
            }
        }

        return buf.toString();
    }    
}

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有