日期:2014-05-20  浏览次数:20622 次

我刚学习JAVA,这是我第一个程序,计算银行金额转换大小写的,大家帮我看下对吗?谢谢了
import   java.text.DecimalFormat;  

public   class   helloworld   {

/**
  *   @param   args
  */
public   static   void   main(String[]   args)   {
//   TODO   自动生成方法存根
double   inputvalue   =   1234567890123.312030;
if(inputvalue   ==   0)   {
System.out.print( "零 ");
return;
}
String   stringvalue,sintvalue,sdecvalue;
DecimalFormat   ss   =   new   DecimalFormat( "0.00 ");
stringvalue   =   ss.format(inputvalue);
int   decbit;
decbit   =   stringvalue.indexOf( ". ");
if(decbit   ==   0){
sintvalue   =   stringvalue;
sdecvalue   =   " ";
}else{
sintvalue   =   stringvalue.substring(0,decbit);
sdecvalue   =   stringvalue.substring(decbit   +   1);
}
String   chesenumunit[]   =   { " ", "壹 ", "贰 ", "叁 ", "肆 ", "伍 ", "陆 ", "柒 ", "捌 ", "玖 "};
helloworld   hwtochn   =   new   helloworld();
//处理整数
String   schar,sreversed,schnintvalue= " ",schndecvalue= " ";
int   ibit;
StringBuffer   s=new   StringBuffer(sintvalue);
sreversed   =   s.reverse().toString();
for(int   i=   0;i <sreversed.length();i++)  
{
schar   =   sreversed.substring(i,   i+1);
ibit   =   Integer.parseInt(schar);
schnintvalue   =   chesenumunit[ibit]   +   hwtochn.GetUnit(i)   +schnintvalue;
}

//清除多余的单位
String   slist   =   "拾佰仟万亿 ";
for(int   i=   schnintvalue.length()-1;i> =0;i--)  
{
schar   =   schnintvalue.substring(i,   i+1);
if(slist.indexOf(schar)> =0)
{
for(int   j   =   i-1;j> =0;j--)
{
String   shighchar;
shighchar   =   schnintvalue.substring(j,   j+1);
if(slist.indexOf(shighchar) <0)
{
break;
}
else   if(slist.indexOf(shighchar,slist.indexOf(schar)+1)> =0)
{
schnintvalue   =   schnintvalue.substring(0,i)+schnintvalue.substring(i+1);
break;
}

}
}
}
schnintvalue   =   schnintvalue   + "圆 ";

//处理小数
ibit   =   Integer.parseInt(sdecvalue.substring(0,1));
if   (ibit   >   0)   schndecvalue   =   chesenumunit[ibit]   +   "角 ";
ibit   =   Integer.parseInt(sdecvalue.substring(1,2));
if   (ibit   >   0)   schndecvalue   =   schndecvalue   +   chesenumunit[ibit]   +   "分 ";
String   schnnum;
schnnum   =   schnintvalue   +   schndecvalue+ "整 ";
System.out.print(stringvalue+schnnum);

}
public   String   GetUnit(int   num)   {//取单位   非零数字按位数取单位
int   level;
level   =   num%4;
switch(level)   {
case   0:
if(num   ==   0)
return   " ";
else
if(num%8   ==   0)   return   "亿 ";   else   return   "万 ";