读取csv文件并用java进行输入

读取csv文件并用java进行输入,java,csv,exception,Java,Csv,Exception,我有一个csv文件,我将在代码中读取。 但当我运行代码时,它显示了以下错误: Exception in thread "main" java.lang.NumberFormatException: For input string: "lon" at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)

我有一个csv文件,我将在代码中读取。 但当我运行代码时,它显示了以下错误:

    Exception in thread "main" java.lang.NumberFormatException: For input string: "lon"
    at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
    at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
    at java.base/java.lang.Double.parseDouble(Double.java:543)
    at practise.main(practise.java:63)
请帮我做这个

这是我的密码:

    s1 = new Scanner(new FileReader(filename2+".csv"));
    while(s1.hasNext()){
        z = s1.nextLine();

        String[] results = z.split(",");
        double[] lon_lat = new double [2];
        lon_lat[0] = Double.parseDouble(results[1]);//longtitude
        lon_lat[1] = Double.parseDouble(results[2]);//latitude
        airportLonLat.put(Integer.parseInt(results[0]), lon_lat);
    }
这是我的csv数据:

Id     lon      lat
1     -5.9300   54.5906
2     -5.9385   54.6013
3     -5.9191   54.5928
4     -5.9171   54.5992
5     -5.9273   54.5873
.......................
30    -5.9582   54.5834

程序从包含标题的第一行开始读取。您得到的是“NumberFormatException”,因为它正试图将标头(一个字符串)转换为double

要解决此问题,可以从数据中删除标题,也可以添加跳过第一行的条件


希望这能解决问题。

根据变量所代表的内容来命名变量是一种很好的做法,这样即使在两周后再次使用代码,代码也更可读、更容易理解
s1
z
可以是任何内容。@辍学者,谢谢。我会的。哦,我现在明白了。这就是原因。非常感谢。