字符数组小问题?(关于split)

jinggangshi 2007-10-29 09:06:20
定义一个数组,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]能取到空值
...全文
135 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinggangshi 2007-11-01
  • 打赏
  • 举报
回复
已经结贴不能回复吗?
hitzfc 2007-10-29
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
说明数组越界,数组长度为1,访问下标应为0,访问的下标是1会抛出上述异常
lihaifeng0412 2007-10-29
  • 打赏
  • 举报
回复
帮忙顶下
「已注销」 2007-10-29
  • 打赏
  • 举报
回复

String mm[] = new String[2];
Strubg temp="9".split("\\.");
System.arraycopy(temp,0,mm,0,Math.min(temp.length,mm.length));
jinggangshi 2007-10-29
  • 打赏
  • 举报
回复
怎样给mm 增加一个元素mm[1]
liuzi123 2007-10-29
  • 打赏
  • 举报
回复
你把需求说的详细点,最好有测试数据
johnsoncr 2007-10-29
  • 打赏
  • 举报
回复
当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]!
liuzi123 2007-10-29
  • 打赏
  • 举报
回复
字符m 可能为小数,也可能整数,首先你要用IndexOf判断是整数还是小数的情况,然后才使用SPLIT函数才能解决你数组异常的问题啊
jinggangshi 2007-10-29
  • 打赏
  • 举报
回复
问题是我已经定义了数组的长度
怎样能让mm[1]取到值,空值也行
liuzi123 2007-10-29
  • 打赏
  • 举报
回复
你的异常报数组下标越界
liuzi123 2007-10-29
  • 打赏
  • 举报
回复
关注下

62,623

社区成员

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

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