简体   繁体   English

名单 <String[]> 浮动阅读CSV

[英]List<String[]> to float reading csv

I'm trying to read a csv file to a 2D array in Java. 我正在尝试将csv文件读取到Java中的2D数组。

So far I manage to follow some stackoverflow examples and successfully read the .csv using opencsv-3.2. 到目前为止,我设法遵循一些stackoverflow示例,并使用opencsv-3.2成功读取了.csv。

    CSVReader csvReader = new CSVReader(new FileReader(new File("file.txt")));
    List<String[]> list = csvReader.readAll();

    String[][] dataArr = new String[list.size()][];
    dataArr = list.toArray(dataArr);

However I would like to dataArr be on float type and not on String. 但是我想dataArr是浮点类型而不是字符串。 I probably imagine that we have to convert the String list to float, but despite several attempts and some reading I still do not have success. 我可能想像过我们必须将String列表转换为float,但是尽管进行了几次尝试和一些阅读,但我仍然没有成功。 Thanks 谢谢

The toArray() method of the List class is definitely not what you are looking for... List类的toArray()方法绝对不是您想要的...

You are going to have to manually loop through the list and parse each record in the row individually (assuming you don't have access to Java 8). 您将必须手动遍历列表并单独分析行中的每个记录(假设您无权使用Java 8)。

Something like: 就像是:

float[][] dataArr = new float[list.size()][];

for(int row = 0; row<list.size(); row++){
    String [] thisRowStrings = list.get(row);
    float[] thisRowFloats = new float[thisRowStrings.length];
    for(int c=0; c<thisRowStrings.length; c++){
       thisRowFloats[c]=Float.parseFloat(thisRowStrings[c]);
    } 
    dataArr[row]=thisRowFloats;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM