区域码转换问题!麻烦ggjj帮下忙!

矜持的射手 2004-04-21 11:21:19
就是银行里的代码转换问题,将阿拉伯数字转化成中文大写
例如1023.21转换成壹仟零贰拾叁点贰壹

请问如何实现?
这个是偶昨天的面试题

偶不会,麻烦各位高手给个代码或者解释如何实现的,小弟不胜感激!!!
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
矜持的射手 2004-04-24
  • 打赏
  • 举报
回复
偶是从java-cn上找来的,楼上的如果就是那位发帖的
那我就不好意思盗用下你的知识产权了:)
我在原来的代码下就加个主函数

class Moneytrans {
private String strChMoney = new String();
private String strNumChList = "零壹贰叁肆伍陆柒捌玖";
private String strCurrChList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
private String strNumCh1, strCurrCh1;
private boolean zeroFlag = false;
private float f1;
private int intStrLen, i, numch, pos;

Moneytrans() {
}

String Trans(String strNumMoney) {
try {
f1 = Float.parseFloat(strNumMoney);
}
catch (Exception e) {
}
strNumMoney = Long.toString( (long) (f1 * 100));
intStrLen = strNumMoney.length();
i = 1;
while (i <= intStrLen) {
numch = Integer.parseInt(strNumMoney.substring(i - 1, i));
strNumCh1 = strNumChList.substring(numch, numch + 1);
strCurrCh1 = strCurrChList.substring(intStrLen - i, intStrLen - i + 1);

if (!zeroFlag && strNumCh1.equals("零")) {
i++;
if (strCurrCh1.equals("元")) {
strChMoney += strCurrCh1 + "零";
zeroFlag = true;
continue;
}
if (strCurrCh1.equals("角")) {
strChMoney += strNumCh1;
zeroFlag = true;
continue;
}
if (strCurrCh1.equals("分") || strCurrCh1.equals("角")) {
continue;
}
strChMoney += strNumCh1;
zeroFlag = true;

continue;
}
if (zeroFlag && strNumCh1.equals("零")) {
i++;
if (strCurrCh1.equals("元")) {
pos = strChMoney.lastIndexOf("零");
strChMoney = strChMoney.substring(0, pos) + strCurrCh1 + "零";
continue;
}
continue;
}
strChMoney += strNumCh1 + strCurrCh1;
zeroFlag = false;
i++;
}
if (strChMoney.endsWith("零")) {
strChMoney = strChMoney.substring(0, strChMoney.lastIndexOf("零"));
}
return strChMoney.concat("整");
}


public static void main(String arg[]){
Moneytrans mt=new Moneytrans();
String s=mt.Trans("125423.00");
System.out.println(s);
}
}


矜持的射手 2004-04-22
  • 打赏
  • 举报
回复
怎么都没反映啊

这样偶也不好结帖啊!!
ngqzmjmj 2004-04-22
  • 打赏
  • 举报
回复
给你 点我的思路
首先 建立两个数组
String[] str={"分","角","","元","拾","佰","千"....}
String[] str2={"零","壹","贰","叁"......}
这下你应该明白了吧
xzyrose 2004-04-22
  • 打赏
  • 举报
回复
我还不知道是怎么解决的,把代码发给我看看,,谢谢了

xzyrose@tom.com
矜持的射手 2004-04-22
  • 打赏
  • 举报
回复
晕!

这个偶也晓得地

问题偶自己已经解决了


跟下帖,晚上偶来结分!
矜持的射手 2004-04-21
  • 打赏
  • 举报
回复
那还有拾,佰,仟怎么判断呢?
bigcrazy 2004-04-21
  • 打赏
  • 举报
回复
需要自己写代码。
把1-9影射为壹到玖
然后判断小数点前面有多位。
矜持的射手 2004-04-21
  • 打赏
  • 举报
回复
麻烦各位不吝赐教!

给点意见拉!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧