gpt4 book ai didi

java - Java 中数组中 String 的类型转换抛出 "Unknown Source Error"

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

我正在尝试使用 java 解析 CSV 文件并获取一些 id

我已经传递了列表中的内容,每个列表元素都包含来自 csv 文件的一行信息,其格式为 user_id、poi_id、times_visited,如下所示:

enter image description here

传递所有内容后,我使用 .split(",") 来分解数组中每个记录内的内容,以便于访问。

现在,当我尝试使用以下代码使用 parseInt 将 poi_id 从字符串转换为整数时:

    ArrayList<POI> poi_list = new ArrayList<POI>();
for(int i=0; i<lista.size(); i++) {
String checking = lista.get(i);
String[] checking_array = checking.split(",");
System.out.println("checking_array's second element for list.get("+i+") is: "+checking_array[1]);
int id = Integer.parseInt(checking_array[1]);
POI item = new POI(id);
poi_list.add(item);
}

我收到此错误:

enter image description here正文:

checking_array's second element for list.get(0) is:  149   
Exception in thread "main" java.lang.NumberFormatException: For input string: "
149"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at M.main(M.java:28)

现在,当我检查数组的第一个元素(尽管这不是我想要的)时,它会被正确转换并且与此代码完美地流动:

 ArrayList<POI> poi_list = new ArrayList<POI>();
for(int i=0; i<lista.size(); i++) {
String checking = lista.get(i);
String[] checking_array = checking.split(",");
System.out.println("checking_array's second element for list.get("+i+") is: "+checking_array[1]);
int id = Integer.parseInt(checking_array[0]);
POI item = new POI(id);
poi_list.add(item);
}

结果:

enter image description here

正文:

checking_array's second element for list.get(8458) is:  475
checking_array's second element for list.get(8459) is: 526
checking_array's second element for list.get(8460) is: 542
checking_array's second element for list.get(8461) is: 866
checking_array's second element for list.get(8462) is: 927
checking_array's second element for list.get(8463) is: 1055
checking_array's second element for list.get(8464) is: 1083
checking_array's second element for list.get(8465) is: 1318
checking_array's second element for list.get(8466) is: 1372
checking_array's second element for list.get(8467) is: 1501
checking_array's second element for list.get(8468) is: 1931
checking_array's second element for list.get(8469) is: 1942

这让我很困惑,因为数组似乎是可以访问的,当我将其打印为字符串时一切都很好,但是当我专门尝试第二个元素时,它无法转换为整数?

最佳答案

从输出的间隔方式来看,其中可能有一个前导空格字符,这可能会导致解析问题。试试这个:

int id = Integer.parseInt(checking_array[1].trim());

关于java - Java 中数组中 String 的类型转换抛出 "Unknown Source Error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49844621/

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