2014-03-05 133 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")); 
    }