好了,你自己說的!這是一個數組數組!這意味着當你做
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數組元素!
謝謝!它完美的作品。 :)但是你說這不是正確的做法。你心裏還有別的東西嗎? –