好了,你自己说的!这是一个数组数组!这意味着当你做
htmlsArr[i]
你将从这个数组数组中返回元素i,这当然是一个数组!当你做
htmlsArr[i][j]
你得到的是数组中的元素j,它是数组中的元素我叫做htmlsArr!最后的代码应该是这样的:
void leerHTMLs(String[] urls) {
String[][] htmlsArr;
htmlsArr = new String[urls.length][0];
for (int i = 0; i < urls.length; i++) {
htmlsArr[i] = loadStrings(urls[i]);
}
}
如此以来loadStrings()返回的字符串你告诉处理采取的输出,并把它放在阵列htmlsArr i的元素(这当然是一个数组)的数组。
从技术上讲,这不是做这种事情的适当方式,因为说
htmlsArr = new String[urls.length][0];
手段使与元素urls.length编号的数组,他们都应该有0号元素的数组。但你覆盖数组与元素的任意数量的阵列等阵列,特别是多达loadStrings可能给你。
编辑:
作为每Shane的评价请求,这样做更适当的方法是在阵列中的一个(外部或内部的一个)使用列表。也就是说,当然,以我个人的浅见,因为自从加工(渣)允许你这样做,你不妨考虑一下它正确。问题是,当你说东西的喜欢:
String [][] arr = new String[3][4];
你的意思本质上是一个矩形阵列排序是这样的:
{{ "a","b","c","e" },
{ "p","y","f","n" },
{ "g","q","r","m" }}
也就是说,在三个数组的数组,每个包含四个元素。这仅仅是出于直觉的原因,我认为这是一种“不正当”的方式。如果阵列是这样的:
{{ "a","b","c","e","k","h","s" },
{ "p","y" },
{ "g","q","r","m" }}
没有办法在new String[3][something]
方式直观地定义它,但你可以随时使用拉伸在我原来的答复。(顺便说一句,你似乎也可以用一个像这样的空参数来定义它:new String[3][]
)
但是既然你要离开数组的第二维undefined,那么你可能会转向列表更适合的列表为“未知数量的元素”工作。因为它似乎不能创建列表的数组,你将不得不创建数组列表如下:
ArrayList<String []> a = new ArrayList<String []>();
正如你可以看到有没有在这里的元素数量的定义。 ArrayLists可以添加尽可能多的元素,并且可以随意添加和删除元素。那么上面的代码说的是你有一个尚未定义的字符串数组列表。然后,在for循环读取你的网址,你可以去:
a.add(loadStrings(urls[i]));
,现在有一个在您ArrayList的一个新的String数组元素!
谢谢!它完美的作品。 :)但是你说这不是正确的做法。你心里还有别的东西吗? –