定义一个数组,String mm[] = new String[2];
字符m 可能为小数,也可能整数
mm = m.split("\\.");
问题:
当m为整数如m=9时 
执行完 mm = m.split("\\.");后
mm[1]不存在,数组长度变为1,取mm[1]值时报异常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at GetRMBToCap.getNumberToRMB(GetRMBToCap.java:13)
at Testrmb.main(Testrmb.java:10)
当m为小数且整数位没有时如 m=.9时,
mm[0]能取到空值

解决方案 »

  1.   

    字符m 可能为小数,也可能整数,首先你要用IndexOf判断是整数还是小数的情况,然后才使用SPLIT函数才能解决你数组异常的问题啊
      

  2.   

    当m为带有小数点的字符串时,假设就如你说的“.9”
    执行mm = m.split("\\.")后,mm的长度即为2,mm[0]=null,mm[1]=9;
    当m为不带小数点的字符串时,假设m=9时 
    执行mm = m.split("\\.")后,此时的mm就不再是你开始定义的new String[2]; 因为这时的mm的元素个数只有1,也就不存在mm[1]!
      

  3.   

    怎样给mm 增加一个元素mm[1]
      

  4.   


    String mm[] = new String[2];
    Strubg temp="9".split("\\.");
    System.arraycopy(temp,0,mm,0,Math.min(temp.length,mm.length));
      

  5.   

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 
    说明数组越界,数组长度为1,访问下标应为0,访问的下标是1会抛出上述异常