java.util.NoSuchElementException原因及两种解决方法
作者:星汉空兮 发布时间:2022-02-10 15:18:58
java输入流报错:
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Unknown Source)
at java.base/java.util.Scanner.next(Unknown Source)
at java.base/java.util.Scanner.nextInt(Unknown Source)
at java.base/java.util.Scanner.nextInt(Unknown Source)
原因分析:
1、可能是因为迭代器多用了一次,指向空!
例如:
Scanner iter=new Scanner(System.in);
while(iter.hasNext()) {
ArrayList<SprintUserStory> undoneUserStoriesList = SprintUtil.getUndoneUserStoriesList(iter.next().getID(),iter.next().getPkey());
if(undoneUserStoriesList.size() >0){
willdonefeautre--;
}
}
分析:第二次使用 iter.next() 时,游标已经指向下一个位置了,中间多出来一个空值!
2、在函数中,声明了一个 scanner 对象,并且调用了 close 方法,再次启动 scanner 的时候(或者在另一个函数中重新启动 scanner 时),就会遇到异常!
解决方法:
1、类如原因一的可以这样解决,把 iter.next() 赋给一个中间变量:
Scanner iter=new Scanner(System.in);
while (iter.hasNext()) {
JIRAFeature jirafeaturetemp = iter.next();
ArrayList<SprintUserStory> undoneUserStoriesList = SprintUtil.getUndoneUserStoriesList(jirafeaturetemp.getID(),jirafeaturetemp.getPkey());
if(undoneUserStoriesList.size() >0){
willdonefeautre--;
}
}
2、类如原因二的可以这样解决:
使用多次Scanner get=new Scanner(System.in); 但是只在最后使用 iter.close() 函数;
或者将Scanner get=new Scanner(System.in); 放在所有函数外层,同时在前面加上static修饰符,并且只在最后使用 iter.close() 函数!
来源:https://ximury.blog.csdn.net/article/details/102991459


猜你喜欢
- 目录微服务微服务架构SpringCould简介环境搭建1. 创建数据库2. 新建一个子模块api3. 新建一个子模块provider作为服务
- String和StringBuilder和StringBuffer,这三个都是值得深究一翻的,可能很多人会说,实在不行的话,都全部用Stri
- 前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除
- 目录为什么要用Geometry数据做图标?怎么获取Geometry数据?如何使用Geometry数据相信大家在阅读WPF相关GitHub开源
- 出现问题描述: 1.Could not get a resource from the pool, Connection refused:
- 在谈 Volatile 之前,我们先回顾下 Java 内存模型 的三要素:原子性、可见性、有序性,也就是大家常提到的并发编程三要素。并发编程
- 遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它能解决很多问题,
- 一、闭包的定义。有很多不同的人都对闭包过进行了定义,这里收集了一些。# 是引用了自由变量的函数。这个函数通常被定义在另一个外部函数中,并且引
- 前言在 App 的运营中,活跃度是一个重要的指标,日活/月活……为了提高活跃度,就发明了小红点,
- Android作为一个伟大的系统,自然提供了设置默认打开程序的实现.在这篇文章中,我会介绍如何在Android系统中设置默认的程序. 在设置
- 目录环境准备1.数据库操作1.1获取所有数据库1.2获取指定库的所有集合名1.3.删除数据库2.文档操作2.1插入文档2.2查询文档2.3分
- “Java is still not dead—and people are starting to figure that out.”本教
- Jackson 日期格式化技巧使用 Spring Boot 时,需要使用 Jackson 处理一些 Java Time API 类型的 JS
- 1.类加载<1>.父子类执行的顺序1.父类的静态变量和静态代码块(书写顺序)2.子类的静态变量和静态代码块(书写顺序)3.父类的
- 实例如下:Enumeration rnames=request.getParameterNames();for (Enumeration e
- 1.工作原理(算法思路)给定一个待排序数组,找到数组中最小的那个元素如果最小元素不是待排序数组的第一个元素,则将其和第一个元素互换在剩下的元
- Java Function的使用一、方法介绍表示接受一个参数并产生结果的函数。参数类型 T - 函数输入的类型R - 函数的结果类型方法介绍
- 一,为什么说是真正的 * ?阐述这个问题前,先说下之前网上的,各位可以复制这段字,去百度一下 "仿微信打开网页的进度条效
- 一、TabHost用法通常情况下我们会通过继承TabActivity,调用getTabHost()获取TabHost实例,下面是具体过程。T
- 最近有一个java实验,要求用java使用数据库,于是本人新手小白,在idea上卡了好半天希望看到这个博客的人能解决问题,跳过一些坑首先,我