public class RmbConversion {
public String Conversion(String str){
String rmbstr = "";
//创建单位字符串数组
String rmbunit[] = {"","圆","拾","佰","仟","萬","亿"};
//创建中文数字字符串数组
String rmbnum[] ={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//把将要转换的数字的整型部分和小数部分别放在字符串数组中
String lstr[] =str.split("//.");
StringBuffer rmbsb = new StringBuffer();
//拼写整型部分
for(int i=lstr[0].length();i>0;i--){
//将一个一的数字分别取出
int k =Integer.parseInt((lstr[0]).substring((lstr[0].length()-(i-1))-1,lstr[0].length()-(i-1)));
//转换后并连接
rmbsb.append(rmbnum[k]);
//给整型数字添加单位
if(((i-1)/4)%2==0&&( (i - ( (i - 2) / 4 * 4 + 1))) + 1==5)
//连接"亿"位
rmbsb.append(rmbunit[((i-((i-2)/4*4+1)))+2]);
else
//连接"圆","拾","佰","仟","萬"位
rmbsb.append(rmbunit[((i-((i-2)/4*4+1)))+1]);
}
//连接小数为数
rmbsb.append(rmbnum[Integer.parseInt(""+lstr[1].substring(0,1))]);
rmbsb.append("角");
rmbsb.append(rmbnum[Integer.parseInt(""+lstr[1].substring(1,2))]);
rmbsb.append("分");
rmbstr = rmbsb.toString();
//去掉在字符串中多余的单位和零
rmbstr = rmbstr.replaceAll("零([^亿万圆角分])", "零");
rmbstr = rmbstr.replaceAll("亿零+万","亿零");
rmbstr = rmbstr.replaceAll("零+", "零");
rmbstr = rmbstr.replaceAll("零([亿万圆])", "$1");
rmbstr =rmbstr.replaceAll("^壹拾","拾");
//返回转换的结果.
return rmbstr;
}
public static void main(String[] args) {
RMBConversion rmbc = new RMBConversion();
System.out.println("转换结果为:"+rmbc.Conversion(10000000000000000000001.00+""));
}
}
public String Conversion(String str){
String rmbstr = "";
//创建单位字符串数组
String rmbunit[] = {"","圆","拾","佰","仟","萬","亿"};
//创建中文数字字符串数组
String rmbnum[] ={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//把将要转换的数字的整型部分和小数部分别放在字符串数组中
String lstr[] =str.split("//.");
StringBuffer rmbsb = new StringBuffer();
//拼写整型部分
for(int i=lstr[0].length();i>0;i--){
//将一个一的数字分别取出
int k =Integer.parseInt((lstr[0]).substring((lstr[0].length()-(i-1))-1,lstr[0].length()-(i-1)));
//转换后并连接
rmbsb.append(rmbnum[k]);
//给整型数字添加单位
if(((i-1)/4)%2==0&&( (i - ( (i - 2) / 4 * 4 + 1))) + 1==5)
//连接"亿"位
rmbsb.append(rmbunit[((i-((i-2)/4*4+1)))+2]);
else
//连接"圆","拾","佰","仟","萬"位
rmbsb.append(rmbunit[((i-((i-2)/4*4+1)))+1]);
}
//连接小数为数
rmbsb.append(rmbnum[Integer.parseInt(""+lstr[1].substring(0,1))]);
rmbsb.append("角");
rmbsb.append(rmbnum[Integer.parseInt(""+lstr[1].substring(1,2))]);
rmbsb.append("分");
rmbstr = rmbsb.toString();
//去掉在字符串中多余的单位和零
rmbstr = rmbstr.replaceAll("零([^亿万圆角分])", "零");
rmbstr = rmbstr.replaceAll("亿零+万","亿零");
rmbstr = rmbstr.replaceAll("零+", "零");
rmbstr = rmbstr.replaceAll("零([亿万圆])", "$1");
rmbstr =rmbstr.replaceAll("^壹拾","拾");
//返回转换的结果.
return rmbstr;
}
public static void main(String[] args) {
RMBConversion rmbc = new RMBConversion();
System.out.println("转换结果为:"+rmbc.Conversion(10000000000000000000001.00+""));
}
}