Java实现人民币小写转大写
import java.io.*;
import java.util.*;
import java.lang.*;
public class money
{
public money()
{
}
public static String getChnmoney(String strNum){
int n,m,k,i,j,q,p,r,s=0;
int length,subLength,pstn;
String change,output,subInput,input=strNum;
output="";
if(strNum.equals(""))
return null;
else
{
length=input.length();
pstn=input.indexOf('.'); //小数点的位置
if(pstn==-1)
{
subLength=length;//获得小数点前的数字
subInput=input;
}
else
{
subLength=pstn;
subInput=input.substring(0,subLength);
}
char[] array=new char[4];
char[] array2={'仟','佰','拾'};
char[] array3={'亿','万','元','角','分'};
n=subLength/4;//以千为单位
m=subLength%4;
if(m!=0)
{
for(i=0;i
{
subInput='0'+subInput;//补充首位的零以便处理
}
n=n+1;
}
k=n;
for(i=0;i
{
p=0;
change=subInput.substring(4*i,4*(i+1));
array=change.toCharArray();//转换成数组处理
for(j=0;j<4;j++)
{
output+=formatC(array[j]);//转换成中文
if(j<3)
{
output+=array2[j];//补进单位,当为零是不补(千百十)
}
p++;
}
if(p!=0) output+=array3[3-k];//补进进制(亿万元分角)
//把多余的零去掉
String[] str={"零仟","零佰","零拾"};
for(s=0;s<3;s++)
{
while(true)
{
q=output.indexOf(str[s]);
if(q!=-1)
output=output.substring(0,q)+"零"+output.substring(q+str[s].length());
else
break;
}
}
while(true)
{
q=output.indexOf("零零");
if(q!=-1)
output=output.substring(0,q)+"零"+output.substring(q+2);
else
break;
}
String[] str1={"零亿","零万","零元"};
for(s=0;s<3;s++)
{
while(true)
{
q=output.indexOf(str1[s]);
if(q!=-1)
output=output.substr