定义一个数组,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]能取到空值
字符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]能取到空值
执行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]!
String mm[] = new String[2];
Strubg temp="9".split("\\.");
System.arraycopy(temp,0,mm,0,Math.min(temp.length,mm.length));
说明数组越界,数组长度为1,访问下标应为0,访问的下标是1会抛出上述异常