public class NumRmd
{
  private String[] hanArr={"壹","贰","叁","肆","伍","陆","柒","捌","玖"};
  private String[] unitArr={"拾","佰","仟"};
private String toHanStr(String numStr)
{
String result= "";
int numLen=numStr.length();
for(int i=0;i<numLen;i++)
        {
         int num=numStr.charAt(i)-48;
         if(i!=numLen-1 && num!=0)
         {
         result += hanArr[num]+unitArr[numLen-2-i];
         }
         else
         {
         result += hanArr[num];
         }
        }
        return result;
    }     
    public static void main(String[] args)
    {
     NumRmd nr=new NumRmd();
     System.out.println(nr.toHanStr("619"));
    } 
}
不清楚为什么 会发生这样情况那怎么改呢?

解决方案 »

  1.   


    public class NumRmd {
    private String[] hanArr = { "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
    private String[] unitArr = { "拾", "佰", "仟" }; private String toHanStr(String numStr) {
    String result = "";
    int numLen = numStr.length();
    for (int i = 0; i < numLen; i++) {
    int num = numStr.charAt(i) - 48;
    //下面两处的num改为num-1,因为按你声明的,下标0对应壹,依次类推
    if (i != numLen - 1 && num != 0) {
    result += hanArr[num-1] + unitArr[numLen - 2 - i];
    } else {
    result += hanArr[num-1];
    }
    }
    return result;
    } public static void main(String[] args) {
    NumRmd nr = new NumRmd();
    System.out.println(nr.toHanStr("619"));
    }
    }楼主以后碰到这种情况,自己debug进去看看!
      

  2.   

    debug:调试。eclipse里就有。慢慢来,你能行!