java.lang.ArrayIndexOutOfBoundsException求救啊,如何解决

publicclassff{publicstaticvoidmain(Stringargs[]){Strings="file:/D:/Program%20Files/ec... public class ff {
public static void main(String args[])
{
String s="file:/D:/Program%20Files/eclipse/aww/bin/jj/qqdefaultface/78.gif";
String [] str=s.split("[\\/]");
for(int i=0;i<s.length()-1;i++)
if(!str[i].isEmpty())
System.out.println(i+" "+str[i]);
}
}
输出结果是:
0 file:
1 D:
2 Program%20Files
3 eclipse
4 aww
5 bin
6 jj
7 qqdefaultface
8 78.gif
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
at jj.ff.main(ff.java:10)
展开
 我来答
xinmiao10
2012-05-11 · TA获得超过456个赞
知道小有建树答主
回答量:326
采纳率:100%
帮助的人:216万
展开全部
楼上说的对 ,length是数组的属性而不是方法,所以应该为str.length。遍历数组时你写的是<,所以没有必要减一了,要不你就少取一个元素,而你写得是s.length()这是返回字符串的长度,长度是64,而数组中元素总共才九个,循环63次当然会角标越界了。
public class ff {
public static void main(String args[])
{
String s="file:/D:/Program%20Files/eclipse/aww/bin/jj/qqdefaultface/78.gif";
String [] str=s.split("[\\/]");

//增强for
for(String ss:str){
System.out.println(ss);
}

for(int i=0;i<str.length;i++)
if(!str[i].isEmpty())
System.out.println(i+" "+str[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫薇参星
科技发烧友

2012-05-11 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3602万
展开全部
数组越界,你的for循环的终止条件s.length()-1写错了,应该是str.length。
把for(int i=0;i<s.length()-1;i++)改成for(int i=0;i<str.length;i++)就行了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式