public final class Replace{

public static String ChangeToBig(String CurrentNumber){   
//输入CurrentNumber的数字格式为%*.**;
    String results=new String("¥");
String temp = CurrentNumber;

    final String Units[]={"分","角","元","拾","佰","仟",   //单位
      "万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};
      
      final String Numbers[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; //大写数
        
      java.lang.StringBuffer buf=new java.lang.StringBuffer(); //处理后的字符串
      
      char c;
      
      for(int i=0;i<temp.length();i++){  //去掉小数点
        c=temp.charAt(i);
        if(c!='.')
          buf.append(c);
      }
      
      for(int i=1;i<buf.length();i++){
        results+=Numbers[buf.charAt(i-1)-48];
        results+=Units[buf.length()-i];
      }
      return results;
  } 
}

解决方案 »

  1.   

    老大,返回结果是:壹拾贰万叁仟肆佰伍拾陆元柒角
    如果输入是12345678应该是 壹仟贰佰叁拾肆万伍仟陆佰柒拾捌 啊另外可以解释一下results+=Numbers[buf.charAt(i-1)-48];中-48是什么意思吗?
      

  2.   

    偶把final String Units[]={"分","角","元","拾","佰","仟",   //单位
          "万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};中的"分","角","去掉后就正常了,不过这样也不能计算小数点后的币值了
    (不要骂偶笨,偶素菜鸟嘛 -______________- )谁有更好的法子吗?
      

  3.   

    -48 是把字符的ASC码转成对应的数组索引