gpt4 book ai didi

java - StringTokenizer NoSuchElementException 错误

转载 作者:行者123 更新时间:2023-11-30 03:01:15 24 4
gpt4 key购买 nike

我得到一个 NoSuchElementException,现在调试这个,我注意到 Car 和 Carmap 被正确创建,并且值被正确存储,所以我不确定 ST 没有看到哪个下一个标记?或者当它看到没有更多 token 时是否停止。

感谢大家的意见。

    Carmap = new HashMap<String,Car>();
//Change file path accordingly
File f = new File("C:\\XXX\\XXX\\XXX\\CarFaxDB.txt");
//Check to see if file exists, else create file
if (f.exists()){
String data[] = readFile(f);
for (int i =0; i<data.length; i++){

if (data[i] != null){
if (i>0){
String line = data[i];
StringTokenizer st = new StringTokenizer(line,",");
String VIN = st.nextToken();
String carMake = st.nextToken();
String carModel = st.nextToken();
int carYear = Integer.parseInt(st.nextToken());
data[i]= line;
Car car = new Car(VIN, carMake, carModel, carYear);
Carmap.put(car.getVIN(), car);
}
}
}

}

最佳答案

出现错误是因为您尝试期待 nextToken() 但 tokenizer 没有更多 token 。

在执行 nextToken() 之前,您应该检查是否有更多 token 。您可以使用 hasMoreTokens() 方法来执行此操作。

此外,您应该检查是否获得非空并开始打印它以查看它是否具有您期望的所有标记。

这是更正后的代码片段:

Carmap = new HashMap<String,Car>();

//Change file path accordingly
File f = new File("C:\\Users\\XXX\\Documents\\CarFaxDB.txt");

//Check to see if file exists, else create file
if (f.exists()){
String data[] = readFile(f);
for (int i = 0; i < data.length; i++){

if (data[i] != null){
if (i > 0){
String line = data[i];

if(!StringUtils.isEmpty(line)) {
System.out.println(line);
StringTokenizer st = new StringTokenizer(line,",");

/* Check For More Tokens */
String VIN = st.hasMoreTokens() ? st.nextToken() : null;
/* Check For More Tokens */
String carMake = st.hasMoreTokens() ? st.nextToken() : null;
/* Check For More Tokens */
String carModel = st.hasMoreTokens() ? st.nextToken() : null;
/* Check For More Tokens */
int carYear = st.hasMoreTokens() ? Integer.parseInt(st.nextToken()) : 0;
data[i] = line;

Car car = new Car(VIN, carMake, carModel, carYear);
Carmap.put(car.getVIN(), car);
}
}
}
}
}

关于java - StringTokenizer NoSuchElementException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883555/

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