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

解决方案 »

  1.   

    人民币小写转大写?
    public  String toRMB(double money) {
             char[] s1 = {'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'};
             char[] s4 = {'分', '角', '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万'};
             String str = String.valueOf(Math.round(money * 100 + 0.00001));
             String result = "";
                   for (int i = 0; i < str.length(); i++) {
                 int n = str.charAt(str.length() - 1 - i) - '0';
                 result = s1[n] + "" + s4[i] + result;
             }
             result = result.replaceAll("零仟", "零");
             result = result.replaceAll("零佰", "零");
             result = result.replaceAll("零拾", "零");
             result = result.replaceAll("零亿", "亿");
             result = result.replaceAll("零万", "万");
             result = result.replaceAll("零元", "元");
             result = result.replaceAll("零角", "零");
             result = result.replaceAll("零分", "零");
             result = result.replaceAll("零零", "零");
             result = result.replaceAll("零亿", "亿");
             result = result.replaceAll("零零", "零");
             result = result.replaceAll("零万", "万");
             result = result.replaceAll("零零", "零");
             result = result.replaceAll("零元", "元");
             result = result.replaceAll("亿万", "亿");
             result = result.replaceAll("零$", "");
             result = result.replaceAll("元$", "元整");
             return result;
         }  
      

  2.   


    package com.mytest;public class Test5 {
    public static void main(String[] args) {
    String str = "1,200,000,006.00";
    String[] s1 = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖" };
    String[] s2 = {"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟"}; 
    String[] s3 = {"角","分"};
    String result = "";
    int pointIndex = str.indexOf(".");
    String str1 = str.substring(0,pointIndex);
    String str2 = str.substring(pointIndex+1);
    String[] strArray = str1.split(",");
    int index = 1;
    for(int i = strArray.length - 1 ; i > -1 ; i --){
    String strV = strArray[i];
    String result1 = "";
    for(int j = strV.length() - 1 ; j > -1 ; j --){
    String result2 =s1[Integer.parseInt(strV.substring(j,j+1))]+s2[index*3-4-j+strV.length()];
    result1 = result2 + result1;
    }
    result = result1 +result;
    index++;
    }
    for(int i = 0 ; i < str2.length() ; i ++){
    String result3 = s1[Integer.parseInt(str2.substring(i,i+1))] +s3[i];
    result = result + result3;
    }
    result = result.replaceAll("零仟", "零");
    result = result.replaceAll("零佰", "零");
    result = result.replaceAll("零拾", "零");
    result = result.replaceAll("零亿", "亿");
    result = result.replaceAll("零万", "万");
    result = result.replaceAll("零元", "元");
    result = result.replaceAll("零角", "零");
    result = result.replaceAll("零分", "零");
    result = result.replaceAll("零零", "零");
    result = result.replaceAll("零亿", "亿");
    result = result.replaceAll("零零", "零");
    result = result.replaceAll("零万", "万");
    result = result.replaceAll("零零", "零");
    result = result.replaceAll("零元", "元");
    result = result.replaceAll("亿万", "亿");
    result = result.replaceAll("零$", "");
    result = result.replaceAll("元$", "元整");
    System.out.println(result);  }
    }
      

  3.   

    !分割钱的逗号要用成半角的package com.test;import java.util.Scanner;public class ChangeFormat { public static void main(String args[]) {
    Scanner in = new Scanner(System.in);
    System.out.println("输入一个金额:");
    String str = in.next();
    String strArray[] =str.split(","); str = ""; for(int i=0;i<strArray.length;i++)
    {
    str = str + strArray[i];
    } int point = str.indexOf(".");
    char[] c;
    if (point == -1) {
    str = str + ".00";
    point = str.indexOf(".");
    c = new char[str.length()];
    } else {
    c = new char[str.length()];
    } if ((str.substring(point + 1, str.length())).length() > 2) {
    System.out.println("!!!对不起,你输入的小数部分超出实际范围");
    return;
    } if ((str.charAt(0) == '0') && (str.charAt(1) == '0')
    && (str.indexOf(".") != -1)) { System.out.println("!!!你输入的数字超出误差范围");
    return;
    }
    String[] x = new String[]{"千","百","十", "亿", "千", "百", "十", "万", "千", "百", "十" };   
    String[] x1 = new String[point - 1]; for (int i = x1.length - 1; i >= 0; i--) {
    x1[i] = x[x.length - i - 1];
    } for (int i = 0; i < point; i++) {
    c[i] = str.charAt(i);
    switch (c[i]) {
    case '1':
    System.out.print("壹");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '2':
    System.out.print("贰");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '3':
    System.out.print("叁");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '4':
    System.out.print("肆");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '5':
    System.out.print("伍");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '6':
    System.out.print("陆");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '7':
    System.out.print("柒");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '8':
    System.out.print("捌");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '9':
    System.out.print("玖");
    if (x1.length - 1 - i >= 0) {
    System.out.print(x1[x1.length - 1 - i]);
    }
    ;
    break;
    case '0':
    if ((i == 0) || (str.charAt(i + 1) == '0')
    || (str.charAt(point - 1) == '0')) { } else {
    System.out.print("零");
    }
    ;
    break;
    }
    }
    if ((str.charAt(0) == '0') && (str.charAt(1) == '.')) { } else {
    System.out.print("圆");
    }
    for (int i = point + 1; i < str.length(); i++) {
    c[i] = str.charAt(i);
    switch (c[i]) {
    case '1':
    System.out.print("壹"); if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '2':
    System.out.print("贰");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '3':
    System.out.print("叁");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '4':
    System.out.print("肆");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '5':
    System.out.print("伍");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '6':
    System.out.print("陆");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '7':
    System.out.print("柒");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '8':
    System.out.print("捌");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    case '9':
    System.out.print("玖");
    if (i == (point + 1)) {
    System.out.print("角");
    } else {
    System.out.print("分");
    }
    ;
    break;
    }
    } }}
      

  4.   

    2楼那个是double类型,不能满足类似(1,235,236.00)的标准的金额数字,3楼的如果输入一个123就报错了