生辰八字为什么看得准:一个JAVA程序问题,帮忙的追加20!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 16:12:48
输入一个大于等于0,小于1000的汉字,转换成数字.如输入"一百三十五",输出135,"九百零五"输出905.
帮忙写出来的追加20!!!

 
 
 
可以这样写(只有 main( ) 里的调试需要 Java 5):

class C {

    // 返回与中文里的个位数相对应的整数。若参数不是中文个位数则返回 -1。
    static int toInt( char 中文个位 ) {
        return "零一二三四五六七八九".indexOf( 中文个位 );
    }

    // 返回与中文数目相对应的整数。中文数目必须大于或等于零并小于一千。
    static int toInt( String 中文数目 ) {
        int i, result = 0;
        if ( ( i = 中文数目.indexOf( '百' ) ) >= 0 )  // 百容易处理
            result += 100 * toInt( 中文数目.charAt( i - 1 ) );
        if ( ( i = 中文数目.indexOf( '十' ) ) >= 0 )  // 十的前面可能没有数字
            result += 10 * ( i > 0 ? toInt( 中文数目.charAt( i - 1 ) ) : 1 );
        int last = toInt( 中文数目.charAt( 中文数目.length( ) - 1 ) );
        return result + ( last >= 0 ? last : 0 );  // 最后一个字符可能不是个位数
    }

    public static void main( String[ ] args ) {
        for ( String s: "九百零五 五百 二百九十八 六十 三十一 十五 十 零".split( " " ) )
            System.out.printf( "%-10s\t --> %5d\n", s, toInt( s ) );
    }
}
 
 
 

只能给个思路:
如一百三十五,先查找字符如发现千、百、十就找前面的一个字符,从1到9发现哪个就乘以千、百、十,个累加。

这个地址有很多JavaScript精品源码
http://qbit.100steps.net/javascript.php
其中关于繁简体转换的你稍改改就能用了.