| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1464 人关注过本帖
标题:中文数字转换笔试题
取消只看楼主 加入收藏
西鄙人
Rank: 2
等 级:论坛游民
帖 子:36
专家分:12
注 册:2009-12-2
结帖率:100%
收藏
 问题点数:0 回复次数:0 
中文数字转换笔试题
原题:把一个六位一下的阿拉伯数字转换成中文数字,阿拉伯数字不包含小数

这个题以前自己也做过,费了九牛二虎的力气才做出来。这次打算凭记忆再写一遍,后来发现可能有更好的方法。作出题后,自己内心中一点点丑陋的小得意又冒出头来,为此自己还检讨了一下,就打算作罢了。
    这样就能约束自己吗,很显然是不能,要突破。所以写出来,作为自己学习java编程的小小花絮的记忆。
    (上面几句纯属自嘲,请勿拍砖)
import java.util.Scanner;

public class NumberConvert {
    private static String[] zh = new String[] { "零", "壹", "贰", "叁", "肆", "伍",
            "陆", "柒", "捌", "玖" };
    private static String[] loc = new String[] { "", "十", "百", "仟", "万", "十",
            "百", "仟" };

    public static void main(String[] args) {
        int num = getNumber();
        if(num==-1){
            
            return ;
        }
        String result = convert(num);
        System.out.println(result);
    }

    private static String convert(int num) {
        if (num == 0) {
            return "零";
        }
        String result = new String();
        boolean flag = false;
        for (int i = String.valueOf(num).length(); i > 0; i--) {
            int temp = (int) (num / (Math.pow(10, i - 1)) % 10);
            if (temp == 0) {
                flag = true;
                continue;
            } else {
                if (flag) {
                    result += "零";
                    flag = false;
                }
                result += zh[temp];
                result += loc[i - 1];
            }
        }
        return result;
    }

    private static int getNumber() {
        Scanner sc = new Scanner(System.in);
        for (;;) {
            String str = sc.next();
            if (str.matches("^\\d+$")) {
                return Integer.parseInt(str);
            } else {
                if ("exit".equals(str)) {
                    return -1;
                }
                System.out.println("用户输入不合规则,请重新输入:");
                continue;
            }
        }
    }

}
搜索更多相关主题的帖子: 笔试 数字 中文 
2010-11-22 22:48
快速回复:中文数字转换笔试题
数据加载中...
 
   



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

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