我正在运行一个网络抓取工具供我自己使用。我下载了一个并希望提供种子。我想提供大约50粒种子。所以我创建了一个字符串数组。我希望每次遍历for循环时为爬虫提供1个种子。我的代码是:
String [] temp = new String [] { “http://www.random.org/","http://www.wikipedia.org/” “http://www.jlworld.com/”, “http://www.frys.com/”};
String [] urls = new 串[temp.length];
for (int i = 0; i <=temp.length; i++) { urls[i] = temp[i]; }
抓取工具需要分配给网址的字符串。所以喜欢:
String [] urls = new String [1];
urls [0] =“http://www.google.com/”;
所以它就是这样的。对于我的代码,我得到了一个outofbounds异常。我想要做的是每次通过for循环时为爬虫提供1个种子。任何有关这方面的帮助将不胜感激!
答案 0 :(得分:5)
for (int i = 0; i <=temp.length; i++)
应该是:
for (int i = 0; i <temp.length; i++)
答案 1 :(得分:2)
for(int i = 0; i < temp.length; i++)
在数组上调用.length
会返回数组的大小,但数组索引是从0开始的。对于你的循环,从i = 0
开始你是正确的,但你只想转到i = (temp.length - 1)
或者你会得到索引超出范围的异常。比较i < temp.length
代替i <= temp.length
说明了这种基于索引的转变。
答案 2 :(得分:1)
更改行
for (int i = 0; i <=temp.length; i++)
到
for (int i = 0; i < temp.length; i++)
你循环太多次了
答案 3 :(得分:0)
for (int i = 0; i < temp.length; i++) {
String url = temp[i];
... handle url...
}
答案 4 :(得分:0)
为什么没有[URL,种子]对的映射而不是原始数组?使用URL进行查找,然后离开。
答案 5 :(得分:0)
代码应
for (int i = 0; i <temp.length; i++)
{
urls[i] = temp[i];
}
数组索引从0开始到长度为1