题:把数字型的1001 转换成大写的 壹零零壹 (要求 1001不是固定的 要命令行传参 把任意的 数字型的从1234567890 都转换成相应的 汉字)
高手们~~~帮忙啦

解决方案 »

  1.   

    写个方法,里面就是个switch case语句,主要实现输入0-9。返回零-玖;把输入的数拆成一个个数字再一个个调用这个方法,最后合在一起!
      

  2.   

    同意楼上的说法!吧输入的数字串转化为数组!switch case 枚举每一个元素就OK了!幸亏不是1001 转化为 壹仟零壹 要是这样就麻烦了!嗬嗬!
      

  3.   

    import java.util.HashMap;public class FromOneToZero {
    private static HashMap hm;
    static { hm = new HashMap();
    hm.put("1", "壹");
    hm.put("2", "贰");
    hm.put("3", "叁");
    hm.put("4", "肆");
    hm.put("5", "伍");
    hm.put("6", "陆");
    hm.put("7", "柒");
    hm.put("8", "捌");
    hm.put("9", "玖");
    hm.put("0", "零");
    } public static String getNum(String num) {
    if (hm.get(num) == null) {
    return null;
    } else {
    return hm.get(num).toString(); }
    } /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String arg = args[0];
    String result = "";
    for (int i = 0; i < arg.length(); i++) {
    result += getNum(arg.substring(i, i + 1));
    }
    System.out.println("您的原始数据为" + args[0] + "\n您的转换结果为" + result);
    }}C:\>
    C:\>
    C:\>javac FromOneToZero.javaC:\>java FromOneToZero 1234567890
    您的原始数据为: 1234567890
    您的转换结果为: 壹贰叁肆伍陆柒捌玖零
    我要回寝室了,没有时间写的再好点。看看能满足你的要求不。
    明天我再来给你修改
      

  4.   

    http://www.java99.com/?m=ViewFaq&id=129
      

  5.   

    public class TestT implements ItemListener
    {
        public static void main(String[] args) 
        {
            String sNum = args[0];
            String result = "";
            for (int i = 0; i < sNum.length(); i++) 
            {
                switch(sNum.charAt(i))
                {
                case '0': result+="零";break;
                case '1': result+="壹";break;
                case '2': result+="贰";break;
                case '3': result+="叁";break;
                case '4': result+="肆";break;
                case '5': result+="伍";break;
                case '6': result+="陆";break;
                case '7': result+="柒";break;
                case '8': result+="捌";break;
                case '9': result+="玖";break;
                default: System.out.println("存在非法的数字!");
                         System.exit(0);break;
                }
            }
            System.out.println(" the number " + sNum + "is changed into " + result);
        }
    }
      

  6.   

    汗拷贝忘了把" implements ItemListener"去掉了!
      

  7.   

    很多人问过了,如下面的:
    http://community.csdn.net/Expert/topic/5093/5093849.xml?temp=.9010889我的绝对经典答案: String[] num = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    String[] unit = new String[]{"","拾","佰","仟","万","拾万","佰万","仟万","亿","拾亿","佰亿","仟亿","万亿","十万亿","佰万亿","仟万亿"}; //不够自己再加
    String src = "00100000300025";
    String desc = ""; // 转换数字
    int len = src.length();
    String[] descc = new String[len];
    for (int i=0; i<len; i++) {
    descc[i] = num[src.charAt(i) - '0'];
    } // 加上单位
    for (int i=0; i<len; i++) {
    desc += descc[i]; 
    if (!(descc[i].equals("零"))) {
    desc += unit[len-1-i];
    }
    } // 去掉多余的”零“
    desc = desc.replaceAll("零+", "零");
    desc = desc.replaceAll("^零+", "");
    desc = desc.replaceAll("零+$", ""); System.out.println(desc);