我是Java新手,我正在使用开放式CSV读取csv文件,我的代码如下:
import java.io.FileReader;
import java.util.Arrays;
import au.com.bytecode.opencsv.CSVReader;
public class ParseCSVLineByLine
{
double arr []=new arr[10];
public static void main(String[] args) throws Exception
{
//Build reader instance
//Read data.csv
//Default seperator is comma
//Default quote character is double quote
//Start reading from line number 2 (line numbers start from zero)
CSVReader reader = new CSVReader(new FileReader("data.csv"), ',' , '"' , 1);
//Read CSV line by line and use the string array as you want
String[] nextLine;
int i=0;
while ((nextLine = reader.readNext()) != null) {
if (nextLine != null && i<10) {
//Verifying the read data here
arr[i]=Double.parseDouble(Arrays.toString(nextLine).toString());
System.out.println(arr[i]);
}
i++;
}
}
}
但是这不起作用。但是当我只打印
时Arrays.toString(nextLine).toString()
打印
[1]
[2]
[3]
.
.
.
.
[10]
我认为转换存在问题。感谢任何帮助。
答案 0 :(得分:1)
事情是:
&#34; [1]&#34;
不是可以解析为数字的字符串!
您的问题是您将数组整体转换为一个字符串。
所以不要打电话
Arrays.toString(nextLine).toString()
迭代 nextLine并将每个数组成员分配给parseDouble()!
此外:我很确定你会收到 NumberFormatException 或类似的东西。 JVM已经告诉您正在尝试将无效字符串转换为数字。您必须学会阅读这些例外消息,并理解他们的意思!
长话短说:您的代码可能想要解析&#34; [1]&#34;,但您应该解析&#34; 1&#34;代替!