当前位置: 代码迷 >> Java Web开发 >> [求助]用java实现整数转换为人民币金额大写的功能
  详细解决方案

[求助]用java实现整数转换为人民币金额大写的功能

热度:137   发布时间:2006-10-26 20:57:10.0
[求助]用java实现整数转换为人民币金额大写的功能

请各位高手帮我看一下编程题,谢谢!!!!
1 用java编码,实现整数转换为人民币金额大写的功能
a 金额为整数
b 假定金额不大于65536
c 数字0,1,2,3,4,5,6,7,8,9对应的人民币大写字符为零,一,二,三,四,五,六,七,八,九
d 金额单位为:元,十,百,千,万
2 用java编码,统计整数n以二进制数表示时,它包含的0的个数,例如n=10时,其二进制数1010包含的0的个数为2。

搜索更多相关主题的帖子: 人民币  java  整数  金额  

----------------解决方案--------------------------------------------------------
这东西应该发到J2SE版面吧~~很好实现的~~
----------------解决方案--------------------------------------------------------
public class In{
装化为
定义一个hastable 存值
用.next()取值
判定一下就行了
}
我也是新手 初学
----------------解决方案--------------------------------------------------------
帮你做了下~~
import java.io.*;
public class MoneyTest {
private String money=null;
private String strmoney="";
public MoneyTest(String money){
this.money=money;
}
public String getTheRMB()
{
int moneylength=money.length();
int intmoney=0;
try{
intmoney=Integer.parseInt(money);
}catch(Exception e)
{
e.printStackTrace();
}
int lengthtemp=moneylength;
int intmoneytemp=intmoney;
String danwei=null;
String num=null;
if(check(moneylength, intmoney)){
while(lengthtemp>0)
{
int x=1;

for(int i=0;i<lengthtemp-1;i++)
{
x=x*10;
}
int h=intmoneytemp/x;
intmoneytemp=intmoneytemp%x;
switch(h)
{
case 1:num="一";break;
case 2:num="二";break;
case 3:num="三";break;
case 4:num="四";break;
case 5:num="五";break;
case 6:num="六";break;
case 7:num="七";break;
case 8:num="八";break;
case 9:num="九";break;
case 0:num="";break;
default :System.out.println("数字有问题!等等!");

}
switch(lengthtemp)
{
case 5 :danwei="万";break;
case 4 :danwei="千";break;
case 3 :danwei="百";break;
case 2 :danwei="十";break;
case 1 :danwei="元";break;
default:System.out.println("单位有问题!等等!");
}
strmoney=strmoney+num+danwei;
lengthtemp--;
}
return strmoney;
}
return null;
}
private boolean check(int moneylength, int intmoney) {
if(moneylength==0)
{
System.out.println("请输入金额!");
return false;
}else if(intmoney>65536)
{

System.out.println("您输入的金额太大,请输入正确的金额!");
return false;
}
return true;
}

/**
* @param args
*/
public static void main(String[] args) {
try{
System.out.print("请输入金额:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String money1=br.readLine();
MoneyTest mt=new MoneyTest(money1);
String RMB=mt.getTheRMB();
System.out.println("您输入的金额是“"+RMB+"”");
}catch(Exception e){
e.printStackTrace();
}
}

}
----------------解决方案--------------------------------------------------------
没写注解!我想这么短的程序应该看的懂吧~
----------------解决方案--------------------------------------------------------

谢谢你的帮助

还有一个地方不明白
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))这句话是什么意思,为什么要用BufferedReader类
另外还要请教你
拿这个题做例子,你能不能跟我说一下你的做题思路
说实话,我看到编程题,不知道从哪里入手
请高手指点,非常谢谢!!


----------------解决方案--------------------------------------------------------
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
这句话的意思就是从取得从控制台输入的东西。

其实我想说的是……4楼的程序,运行了一下,输入205,结果出来的答案是二百十五元……
我给重新写了一个,但还是有漏洞,如果需要我给帖一下好了
----------------解决方案--------------------------------------------------------
7楼的朋友你好:
要是有空的话,希望贴一下
顺便说一下,你们做题的思路,谢谢!!!
----------------解决方案--------------------------------------------------------
ding
----------------解决方案--------------------------------------------------------
其实这题不是很难,首先分析一下题目,就是把数字转换为大写,然后就是在大写里加入单位,暂不考虑异常。
先写2个方法,这2个方法的作用一个就是换成大写,另一个就是加入单位,如果要考虑异常,就再加一个判断异常的方法。

具体实现,我的思路是先把数字字符串转换为char,然后把char传入到换成大写的方法里进行转换,转换成String[]的数组,再把数组传入加入单位的方法中,使用循环把单位给插入到数组中间,就完成了……

我做的那个在家里,现在在上班……
----------------解决方案--------------------------------------------------------
  相关解决方案