首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-01-23 
我刚学习JAVA,这是我第一个程序,计算银行金额转换大小写的,大家帮我看下对吗?谢谢了importjava.text.Decim

我刚学习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   "万 ";


case   1:
return   "拾 ";
case   2:
return   "佰 ";
case   3:
return   "仟 ";
default:
return   " ";
}
}

}


[解决办法]
楼主看看这个帖子:)
应该对你有帮助。

---------------------------------------

http://community.csdn.net/Expert/topic/5274/5274029.xml?temp=.5542719
[解决办法]
这个也是 程序 中一个比较经典的算法了。

不知道有没有 高手写的最顶级的算法。

热点排行