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) 展开
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) 展开
2个回答
展开全部
楼上说的对 ,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]);
}
}
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]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询