public class t {public static String Trans2RMB(String money) {int index = money.indexOf(".");if (index < 0) {// 沒有角分money = money + ".00";index = money.indexOf(".");}if (money.substring(index, money.length()).length() < 3) {// 沒有分money = money + "0";index = money.indexOf(".");}money = money.replaceAll("\\D", "");// 去除"."int length = money.length();// 貨幣大寫形式String bigLetter[] = { "零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖" };// 貨幣單位String unit[] = { "仟", "佰", "拾", "萬", "仟", "佰", "拾", "億", "仟", "佰","拾", "萬", "仟", "佰", "拾", "元", "角", "分" };StringBuffer buf = new StringBuffer("");for (int i = 0; i < length; i++) {int num = Integer.parseInt(String.valueOf(money.charAt(i)));buf.append(bigLetter[num]);buf.append(unit[unit.length - money.length() + i]);}String moneyTmp = buf.toString();buf = null;for (int i = 0; i < 4; i++) {// 億 萬 元是四個為單元的最后一位比如1234(億)4567(萬)7891(元)moneyTmp = moneyTmp.replaceAll("零億", "億");moneyTmp = moneyTmp.replaceAll("零萬", "萬");moneyTmp = moneyTmp.replaceAll("零仟", "零");moneyTmp = moneyTmp.replaceAll("零佰", "零");moneyTmp = moneyTmp.replaceAll("零拾", "零");moneyTmp = moneyTmp.replaceAll("零元", "元");moneyTmp = moneyTmp.replaceAll("零角", "零");moneyTmp = moneyTmp.replaceAll("零分", "整");}moneyTmp = moneyTmp.replaceAll("億萬", "億");moneyTmp = moneyTmp.replaceAll("拾元", "拾元零");moneyTmp = moneyTmp.replaceAll("[零]{1,}", "零");// 多個連續的零替換為一個零moneyTmp = moneyTmp.replaceAll("零整", "整");return moneyTmp;}public static void main(String[] args) {String money;money = "230067890080.01";System.out.println(Trans2RMB(money));money = "230067890080.11";System.out.println(Trans2RMB(money));money = "230067890080.10";System.out.println(Trans2RMB(money));money = "230067890081.01";System.out.println(Trans2RMB(money));money = "230067890081.11";System.out.println(Trans2RMB(money));money = "230067890081.10";System.out.println(Trans2RMB(money));money = "230067890080.01";System.out.println(Trans2RMB(money));money = "230667890080.01";System.out.println(Trans2RMB(money));money = "230007890080.01";System.out.println(Trans2RMB(money));money = "230607890080.01";System.out.println(Trans2RMB(money));money = "200067890080.01";System.out.println(Trans2RMB(money));money = "200067890080.11";System.out.println(Trans2RMB(money));money = "200067890080.10";System.out.println(Trans2RMB(money));money = "200007890080.01";System.out.println(Trans2RMB(money));money = "200000890080.11";System.out.println(Trans2RMB(money));money = "200000090080.10";System.out.println(Trans2RMB(money));money = "200000000080.10";System.out.println(Trans2RMB(money));money = "200007890080";System.out.println(Trans2RMB(money));money = "200000890080.1";System.out.println(Trans2RMB(money));money = "200607890080.01";System.out.println(Trans2RMB(money));money = "200600890080.11";System.out.println(Trans2RMB(money));money = "200600090080.10";System.out.println(Trans2RMB(money));money = "200600000080.10";System.out.println(Trans2RMB(money));money = "20007800080.01";System.out.println(Trans2RMB(money));money = "10001.01";System.out.println(Trans2RMB(money));// System.out.println(new// StringBuffer(Arrays.toString(unit)).reverse());// String small[] = { "分", "角" };// String[] ss = new String[] { "", "元" };// System.out.println(MoneyUtil.Trans2RMB("."));// System.out.println(MoneyUtil.Trans2RMB(".0"));// System.out.println(MoneyUtil.Trans2RMB("0.0"));// System.out.println(MoneyUtil.Trans2RMB("0.00"));// System.out.println(MoneyUtil.Trans2RMB("0.000"));// System.out.println(MoneyUtil.Trans2RMB("123456789.0"));// System.out.println(MoneyUtil.Trans2RMB("1234"));// System.out.println(MoneyUtil.Trans2RMB("1111."));// System.out.println(MoneyUtil.Trans2RMB("1011.011"));// System.out.println(MoneyUtil.Trans2RMB("00012340000000000.011"));//// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾元零壹分// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾元零壹角壹分// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾元零壹角整// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾壹元零壹分// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾壹元壹角壹分// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾壹元壹角整// 貳仟叁佰億陸仟柒佰捌拾玖萬零捌拾元零壹分// 貳仟叁佰零陸億陸仟柒佰捌拾玖萬零捌拾元零壹分// 貳仟叁佰億零柒佰捌拾玖萬零捌拾元零壹分// 貳仟叁佰零陸億零柒佰捌拾玖萬零捌拾元零壹分// 貳仟億陸仟柒佰捌拾玖萬零捌拾元零壹分// 貳仟億陸仟柒佰捌拾玖萬零捌拾元零壹角壹分// 貳仟億陸仟柒佰捌拾玖萬零捌拾元零壹角整// 貳仟億零柒佰捌拾玖萬零捌拾元零壹分// 貳仟億零捌拾玖萬零捌拾元零壹角壹分// 貳仟億零玖萬零捌拾元零壹角整// 貳仟億零捌拾元零壹角整// 貳仟億零柒佰捌拾玖萬零捌拾元整// 貳仟億零捌拾玖萬零捌拾元零壹角整// 貳仟零陸億零柒佰捌拾玖萬零捌拾元零壹分// 貳仟零陸億零捌拾玖萬零捌拾元零壹角壹分// 貳仟零陸億零玖萬零捌拾元零壹角整// 貳仟零陸億零捌拾元零壹角整// 貳佰億零柒佰捌拾萬零捌拾元零壹分}}