1.用java程序输入标准的金额数字,每三位用逗号隔开,如1,222,343,566.00。解析该数字用xx亿xxx万xxx元输出。

解决方案 »

  1.   

    package outputmoney;import java.util.regex.Pattern;/**
     * @author Yanhua.Chen
     * @time 2012-8-28
     */
    public class Output {
    public static void main(String args[]) {
    String str = "89,311,222,222.00"; //标准的金额数字
    // 去掉逗号和空格
    Pattern p = Pattern.compile("[, ]");
    String[] strs = p.split(str);
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < strs.length; i++) {
    sb.append(strs[i]);
    }
    str = sb.toString();
    String str1 = str.substring(0, str.length() - 3); //去掉小数点后面的数
    int l = str1.length();
    String[] ans;
    if (l % 4 == 0)
    ans = new String[l / 4];
    else
    ans = new String[l / 4 + 1];
    for (int i = 0; i < ans.length; i++) {
    ans[i] = str1.substring(Math.max(0, l - 4 * i - 4), l - 4 * i);
    }
    sb = new StringBuffer();
    for (int i = ans.length - 1; i >= 0; i--) {
    switch (i) {
    case 0:
    sb.append(ans[i] + "元");
    break;
    case 1:
    sb.append(ans[i] + "万");
    break;
    case 2:
    sb.append(ans[i] + "亿");
    break;
    case 3:
    sb.append(ans[i] + "兆");
    break;
    }
    }
    System.out.println(sb.toString());
    }
    }
      

  2.   

    通过正则表达式取得一个String型数组,在由后往前重组并在循环在相应位置加入相应汉字