本帖最后由 张旺达 于 2013-4-22 12:17 编辑
- public class Num2Rmb
- {
- private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
- private String[] unitArr = {"拾","佰","仟"};
- private String toHanStr(String numStr)
- {
- String result = "";
- int numLen = numStr.length();
- for (int i=0; i<numLen; i++)
- {
- //将char型数字转换成int型数字,因为ASCII码值正好相差48
- int num = numStr.charAt(i)-48;
- //如果不是最后一位数字,而且数字不是零,需要添加单位(千、百、十)
- if(i!=numLen-1 && num !=0)
- {
- result += hanArr[num] + unitArr[numLen-2-i]; ---------------------- // 问题在这里!! 为什么是unitArr[numLen-2-i] ? 求解。
- }
- //不需要单位
- else
- {
- result += hanArr[num];
- }
- }
- return result;
- }
- public static void main(String[] args)
- {
- Num2Rmb nr = new Num2Rmb();
- System.out.println(nr.toHanStr("6109"));
- }
- }
复制代码 |