2013-11-27 154 views
0

我想將CSV數據文件中的數據分配到二維數組中。我寫了下面的代碼,但它只適用於一維數組。只要我在下面的行中添加多餘的方括號,就會發生錯誤。我對Java真的很陌生。請幫忙。從CSV數據填充二維數組

String[] pTEDATA = line.split(cvsSplitBy); // Before 
String[][] pTEDATA = line.split(cvsSplitBy); // After 

這裏是整個代碼:

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 

public class pTE { 

    public static void main(String[] args) { 

    pTE obj = new pTE(); 
obj.run(); 

    } 

    public void run() { 

String csvFile = "C:/Users/marathnayake/Downloads/new.csv"; 
BufferedReader br = null; 
String line = ""; 
String cvsSplitBy = ","; 

try { 

    br = new BufferedReader(new FileReader(csvFile)); 
    while ((line = br.readLine()) != null) { 
     if(line.equals("")){ 
      continue; 
     } 
     String[][] pTEDATA = line.split(cvsSplitBy); 

     //while (pTEDATA != null){ 
      //System.out.println("[\'" + pTEDATA[0] + "\'], " + "[\'" + pTEDATA[1] + "\'], " + "[\'" + pTEDATA[2] + "\']");  
     //} 

    } 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    if (br != null) { 
     try { 
      br.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

    } 

} 

回答

0

您正在使用的字符串,它返回一維數組的分割方法。你可以做的一件事是分割線並獲得一維數組,然後使用這個一維數組並根據需要將其轉換爲2D。

0

二維數組與一維數組不同。 String的split方法返回一維數組。

可以分割函數的結果指定爲一個然而TEH 2D陣列的第一索引的元素:

例如

int numberOfLines = 10;//Replace with actual count 
int numberOfCols = 10;//Replace with actual count 
String[][] allMyLines = new String[numberOfLines][numberOfColumns](); 
//... iterator stuff 
allMyLines[currentLine] = line.split();