2014-03-05 193 views
0

我有一個CSV文件,其中包含不同的數據列。將CSV文件導出爲陣列

實施例:

100, 0.1, 0.5 
200, 0.1, 0.1 
300, 0.2, 0.5 

我想將第一列中的第二列存儲到一個數組,到它自己的陣列等,這樣我可以使用它們的數學方程。

我真的沒有那麼擅長java那麼裸露着我。

import.java.util.Scanner; 
import java.io.File; 

public class Example 
{ 
    public static void main(String[] args) throws Exception 
    { 
     Scanner s = new Scanner(new File("C://java//data.txt")); 
    } 
} 

我很失落,直到這一點。

+0

使用http://csvjdbc.sourceforge.net/或類似的東西。你在做什麼是困難的方式。 – matthudson

+0

所以,你說的是你不知道該怎麼辦?你有沒有想過,抽象地說,你想要實現什麼?你爲什麼要實例化一個掃描器 - 你計劃使用的類中是否有任何功能,但沒有告訴我們?如果你需要幫助,你需要給我們更多的東西。 – vanza

+0

查找String.split(),它可以幫助你處理你需要的東西。第一個分割是2列(提示分割函數有這個能力),第二個分割是再次將剩餘的數據分割成數組。祝你好運。 –

回答

1
You can try this: 

public class ReadCSV { 
    public static List<List<Double>> getDimensionList(String key) throws Exception 
    {   
     List<List<Double>> listOfDimension = new ArrayList<List<Double>>(); 
     List<Double> dimensionList = null;  
     File file = null; 
     BufferedReader br = null; 
     try { 
      file = new File(key); 
      br = new BufferedReader(new FileReader(file)); 

      String strLine = ""; 
      StringTokenizer dimensionVal = null; 
      int lineNumber = 0, tokenNumber = 0; 
      while((strLine = br.readLine()) != null) 
      { 
        dimensionVal = new StringTokenizer(strLine, ","); 
        dimensionList = new ArrayList<Double>(); 
        while(dimensionVal.hasMoreTokens()) 
        { 
         tokenNumber++; 
         dimensionList.add(Double.parseDouble(dimensionVal.nextToken())); 

         if(tokenNumber == 3) 
         { 
          Comparator<Double> comparator = Collections.reverseOrder(); 
          Collections.sort(dimensionList,comparator); 

         } 
        } 
        listOfDimension.add(dimensionList); 
        tokenNumber = 0; 
       lineNumber++; 
      } 
     }catch (Exception e) { 
      throw new Exception(); 
     } 
     finally 
     { 
      if(br != null) 
       br.close();   
     }  
     return listOfDimension; 
    } 

    public static void main(String[] args) throws Exception { 
     System.out.println(getDimensionList("dimension_details.csv")); 
    }