首页 > 代码库 > 阿拉伯数字转换成中文大写

阿拉伯数字转换成中文大写

package Demo;
public class Money{
public static void main(String args[])
{
Money mon = new Money();
System.out.println(mon.change("124"));
}
//把"1"转化成1时用下标找TOBIG[1]就是对应的
private static final String[] TOBIG = new String[] { "零", "壹", "贰", "叁",
"肆", "伍", "陆", "柒", "捌", "玖" };
//这里是单位从低到高的排列
private static final String POS[] = new String[] { "", "拾", "佰", "仟", "万",
"拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿" };
public String change(String str)
{
delZero(str);
String newStr ="";
for (int i = 0, j = str.length(); i < j; i++)
{
String s = str.substring(j - i - 1, j - i);
newStr = TOBIG[Integer.parseInt(s)].concat(POS[i])+newStr;
}
// System.out.println(newStr);
newStr = newStr.replace("零仟", "零");
newStr = newStr.replace("零佰", "零");
newStr = newStr.replace("零拾", "零");
newStr = newStr.replace("零万", "万");
for(int i= 0;i<8;i++)
newStr = newStr.replace("零零", "零");
newStr = newStr.replace("零仟", "仟");
newStr = newStr.replace("零佰", "佰");
newStr = newStr.replace("零拾", "拾");
newStr = newStr.replace("零万", "万");
newStr = newStr.replace("零亿", "亿");
if(newStr.endsWith("零"))
newStr = newStr.substring(0,newStr.length()-1);
return newStr;
}
// 去除用0开头的数
private String delZero(String str)
{
if (str.startsWith("0"))
{
str = str.substring(str.indexOf("0") + 1);
System.out.println(str);
return delZero(str);
}
return str;
}
}