关于java中数组下标越界的问题

ENERGY8907 2010-03-07 04:16:09
定义了一个char类型的数组如下:
char[] url=new char[100];
最后运行时总是说数组下标越界:java.lang.ArrayIndexOutOfBoundsException: 100,哪位高手可以指点一下啊
我截取了部分关键代码如下:
String temp = br.readLine();
char[] url=new char[100];
for(int i=0;i <temp.length();i++){
url[i]=temp.charAt(i);
}
while (url!= null)
{
hash1(url,a); //调用自定义的函数
sBuffer.append(temp);
sBuffer.append("\n");
temp = br.readLine();// 从文件中继续读取一行数据
for(int i=0;i<temp.length();i++){
url[i]=temp.charAt(i);
}
}
...全文
408 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
temp.length>100
luweiyuan01 2010-03-09
  • 打赏
  • 举报
回复
读一行文件一般你数组的大小应该尽量的设置大一点,
guangmingdeshenju 2010-03-08
  • 打赏
  • 举报
回复
你 必须确定那个temp的长度 小于 100才可以哦
aaiyuchun102129 2010-03-08
  • 打赏
  • 举报
回复
整个Class出来吧
hjh811 2010-03-07
  • 打赏
  • 举报
回复
temp.length() 长度最大是多少,,自己测试下不就知道了,你贴部分代码人家也看不出你是哪里出了问题的
不善^ 2010-03-07
  • 打赏
  • 举报
回复
for(int i=0;i <temp.length();i++){
url[i]=temp.charAt(i);
}
bldwinln 2010-03-07
  • 打赏
  • 举报
回复

String temp = br.readLine();
char[] url=new char[temp.length()];
for(int i=0;i <temp.length();i++){
url[i]=temp.charAt(i);
}
while (url!= null)
{
hash1(url,a); //调用自定义的函数
sBuffer.append(temp);
sBuffer.append("\n");
temp = br.readLine();// 从文件中继续读取一行数据
for(int i=0;i <temp.length();i++){
url[i]=temp.charAt(i);
}
}
zidasine 2010-03-07
  • 打赏
  • 举报
回复
temp.length>=100

而你的 URL 这个数组长度只定义到100
也就是 最大到 url[99] 超过数组的长度当然要越界了

58,454

社区成员

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

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