2012-10-21 27 views
0

,所以我有下面的代碼位:充分利用string.split數組()的Java

ArrayList table = new ArrayList(); 

然後,當我試圖讓:凡this.table使用啓動

while((line = reader.readLine()) != null) { 
    String[] row = line.split(","); 
    this.table.add(row); 

長度在表中的行,像這樣:

for(int i=0; i<table.size(); ++i){ 
    for(int j=0; j<table.get(i).length; ++j) { 
     //some code  
     } 

它(強調得到(I)。長度;並且給了我一個錯誤,指出它無法找到象徵符號:長度。位置:類對象。

怎麼了?是否string.split()不返回數組?如果是這樣,爲什麼我不能使用任何數組類方法/變量?

謝謝!

回答

2

一個ArrayList不是一個數組列表,它是一個列表支持一個數組。

但是,您可以通過使用泛型將其設置爲數組列表。

List<String[]> table = new ArrayList<String[]>(); 

然後你的代碼應該工作。

+0

謝謝。我需要導入任何使用List的東西嗎?因爲它告訴我它找不到符號? –

+0

nvm。我明白了:)謝謝! –

0

您應該使用java generics

List<String[]> table = new ArrayList<String[]>(); 

然後你會得到String[]實例與get(i)電話。另請注意,使用List接口來聲明表變量。無論如何,請使用適合您需求的超級界面,而不是實施課程。

此外,從Java 1.5開始,你可以用更直觀的語法(當然,這是假設你使用之前,建議仿製藥):你需要輸入你的列表

for(String[] processedRow : table){ 
    for(String processedField : processedRow) { 
     //some code  
    } 
} 
+0

是的,謝謝。我試圖做循環,它會給我那個錯誤,所以我想我正在執行循環錯誤。但顯然不是:) –

0

List<String[]> table = new ArrayList<String[]>(); 

然後java編譯器就會知道String[]存儲在你的列表中。

0
ArrayList table = new ArrayList(); 
// change with: 
ArrayList<String[]> table = new ArrayList();