gpt4 book ai didi

java - 将带有随机生成值的 csv 文件读取到 Java 中

转载 作者:行者123 更新时间:2023-12-02 11:33:10 25 4
gpt4 key购买 nike

首先,我使用 Excel 中的 Rand() 公式生成了一个随机值列表,并将该列表转换为 Csv 文件格式,在 Java 中读取此 csv 时,出现错误:

Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at SatelliteView.UrlSatelliteImage.main(UrlSatelliteImage.java:60)

我不确定如何解决此错误,因为我创建的任何其他列表都可以正常工作这是正常工作的代码:

File file = new File(csvFile);//创建一个文件以使我们能够读取位置文件的内容

    try {           
Scanner sc = new Scanner(file);
sc.useDelimiter("\n");
sc.next(); // ignores header row
while (sc.hasNext()) { // loops through csv
String csvRows = sc.next(); // streams next line
String[] csvLocations = csvRows.split(",");

String latitude = csvLocations[0];
double x = Double.parseDouble(latitude);
String longitude = csvLocations[1];
double y = Double.parseDouble(longitude);

System.out.println(csvLocations[0] + " " + csvLocations[1]);
}
sc.close();
} catch (FileNotFoundException e) {

e.printStackTrace();

现在,输出读取并打印出所需的所有值,但出现异常错误。代码本身可以很好地处理手动输入的普通 csv 文件值,但我不确定使用 Rand() 公式生成这些值是否也创建了一些需要以某种方式省略的新内容。有人有什么想法吗?预先感谢您。

最佳答案

错误状态java.lang.NumberFormatException:空字符串at sun.misc.FloatingDecimal.parseDouble(未知来源)

这意味着您正在尝试将空字符串解析为Double

这附加在此处

double x = Double.parseDouble(latitude);                

或这里

double y = Double.parseDouble(longitude);

所以基本上您正在读取的字符串可能不包含任何坐标(可能是空行)。将您的 while 循环更改为此,它可能会起作用。 (我还添加了更多日志,以便您可以看到发生了什么)

while (sc.hasNext()) {  // loops through csv

String csvRows = sc.next();
// print out the line value to see what we are dealing with
System.out.println("rawTextValue: " + csvRows);

// if the line is not empty
if(!csvRows.isEmpty()) {

String[] csvLocations = csvRows.split(",");
System.out.println(csvLocations[0] + " " + csvLocations[1]);

String latitude = csvLocations[0];
double x = Double.parseDouble(latitude);
System.out.println("x: " + x);

String longitude = csvLocations[1];
double y = Double.parseDouble(longitude);
System.out.println("y: " + y);
}
}

关于java - 将带有随机生成值的 csv 文件读取到 Java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49139843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com