javas.nextInt();错误消息
我正在尝试将“餐厅”添加到我的系统中。我一直收到以下错误消息:javas.nextInt();错误消息,java,netbeans,int,Java,Netbeans,Int,我正在尝试将“餐厅”添加到我的系统中。我一直收到以下错误消息: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117)
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at
projects.dao.textdao.TextRestaurantDAO.loadRestaurants(TextRestaurantDAO.java:40)
at projects.ProjectIncrement2.loadRestaurants(ProjectIncrement2.java:83)
at projects.ProjectIncrement2.main(ProjectIncrement2.java:25)
Java Result: 1
这是当我单击错误消息(显示restaurantTables=s.nextInt();和RestaurantSetATS=s.nextInt();)的部分时,它一直带我到的代码:
@覆盖
公共列表(路径){
列表餐厅=新建ArrayList();
try(Scanner s=newscanner(new BufferedReader(new FileReader(path.toString()))){
s、 useDelimiter(Character.toString(DELIMITER));
r餐厅;
国际餐厅,餐厅,餐厅;
字符串restaurantName,restaurantLocation;
而(s.hasNext()){
如果(s.hasNextInt()){
restaurantId=s.nextInt();
restaurantTables=s.nextInt();
restaurantSeats=s.nextInt();
}
否则{
restaurantId=0;
餐饮类=0;
RestaurantSets=0;
}
restaurantName=s.next();
restaurantLocation=s.next();
s、 nextLine();
r=新餐厅(餐厅名称、餐厅名称、餐厅位置、餐厅表、餐厅测试);
加入(r);;
}
s、 close();
}捕获(FileNotFoundException ex){
Logger.getLogger(TextCustomerDAO.class.getName()).log(Level.SEVERE,null,ex);
}
返回餐厅;
}
我不确定如何修复此错误,因为我尝试的任何操作都会使我回到此错误。对不起,如果我找错了地方,但我正在努力
如果有人能给我指出正确的方向并帮助我纠正这个错误,我将不胜感激
谢谢
如果您需要更多代码,请询问,因此,如果有一个int,请尝试读取其中三个int。。。如果没有三个呢?@azurefrog我理解你的意思,但如何修复它呢?在每个
s.nextInt())
之前检查if(s.hasNextInt())
。第40行是哪一行?你正在读取一个文件,所以我建议每次从扫描仪读取一行。您可以将每一行分别解析为其组件数据。
@Override
public List<Restaurant> loadRestaurants(Path path) {
List<Restaurant> restaurants = new ArrayList<>();
try (Scanner s = new Scanner(new BufferedReader(new FileReader(path.toString())))) {
s.useDelimiter(Character.toString(DELIMITER));
Restaurant r;
int restaurantId, restaurantTables, restaurantSeats;
String restaurantName, restaurantLocation;
while (s.hasNext()) {
if (s.hasNextInt()) {
restaurantId = s.nextInt();
restaurantTables = s.nextInt();
restaurantSeats = s.nextInt();
}
else {
restaurantId = 0;
restaurantTables = 0;
restaurantSeats = 0;
}
restaurantName = s.next();
restaurantLocation = s.next();
s.nextLine();
r = new Restaurant(restaurantId, restaurantName, restaurantLocation, restaurantTables, restaurantSeats);
restaurants.add(r);
}
s.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(TextCustomerDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return restaurants;
}