我有一个带有静态方法的类Test来获取输入。
class Test {
public static Student readStudent() throws IOException {
Scanner s = new Scanner(System.in);
System.out.println("Enter first name of student");
String fname = s.nextLine();
System.out.println("Enter middle name of student");
String mname = s.nextLine();
System.out.println("Enter last name of student");
String lname = s.nextLine();
System.out.println("Enter name format(1 for ',' and 2 for ';') ");
int num = s.nextInt();
System.out.println("Enter age of student");
int age = s.nextInt();
s.close();
return new Student(new Name(String.join((num == 1) ? "," : ";", fname,
mname, lname)), age);
}
}
我可以接受一个学生的输入,但一旦我将其放入for循环,我就会得到一个java.util.NoSuchElementException:没有找到行
错误。
这是我的循环
for (int i = 0; i < 10; i++) {
Student s = Test.readStudent();
}
为什么我会收到此错误?谢谢。
s.close();
关闭当前 Scanner
对象,但也关闭所有基础流,在这种情况下 System.in
。标准输入流关闭后,您将无法再打开它。
总而言之,最好在确定不再需要扫描程序后关闭它,并像这样重组代码:
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
Student s = Test.readStudent(sc);
// do something with your student object here
}
sc.close();
并将您的方法更改为
public static Student readStudent(Scanner s) throws IOException {
Scanner s = new Scanner(System.in);
System.out.println("Enter first name of student");
String fname = s.nextLine();
System.out.println("Enter middle name of student");
String mname = s.nextLine();
System.out.println("Enter last name of student");
String lname = s.nextLine();
System.out.println("Enter name format(1 for ',' and 2 for ';') ");
int num = s.nextInt();
s.nextLine(); // Need to consume new line
System.out.println("Enter age of student");
int age = s.nextInt();
s.nextLine(); // Need to consume new line
// no closing here
return new Student(new Name(String.join((num == 1) ? "," : ";", fname,
mname, lname)), age);
}
问题内容: 所以这是我的代码: 由于某种原因,我收到了No Such Element Exception 我不确定为什么。基本上我的程序正在搜索两个文本文件-armour.txt和TreasureClassEx.txt。getTreasureClass从怪物那里获得一个宝藏类,并在txt中搜索,直到到达基础装甲项目(不以tc:开头的字符串。)然后,它在getArmor中搜索与所获得的基础装甲名称相
我有一个基类,在其中我将webDriver定义为(使用Guice)。这定义了我的beforeclass以及下面的代码行 我有另一个类在beforesuite之后执行,它有一个method1,我在其中为给定函数编写了测试。看起来是这样的 我尝试在click语句上方添加以下行: log.info(webdriver.findelement(by.xpath(Element1)).getAttribut
我正试图使用扫描仪从键盘上获取一个int值,但我得到了以下错误: 写入核心转储失败。核心转储已被禁用。要启用核心转储,请在再次启动Java之前尝试“ulimit-c unlimited”
当我尝试使用量角器在非角度页面中发送键时,它显示错误“无Such元素错误:没有这样的元素” NoSuchElementError:没有这样的元素(会话信息:chrome=47.0.2526.80)(驱动程序信息:chrome Driver = 2 . 14 . 313457(3d 645 C 400 ed F2 e 2c 500566 c9aa 096063 e 707 C 9 cf),platf
我正在尝试单击页面上的“新车辆搜索”,但在我看来,我有错误的Web元素定位器(XPath或CSS)。我尝试了所有可能的选项(CSS,XPath..),但没有成功,我得到了一个错误: 块报价 [错误]NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“xpath”,“selector”:“/html/body/div[5]/div/div[4]/div1
我正在编写一个程序,它接受来自文件的输入,并打印城市及其降雨量的列表。我在确定阵列长度和城市降雨量数据的扫描仪上遇到了麻烦。 我一直得到这个例外 在java.util.scanner.throwfor(scanner.java:909)在java.util.scanner.next(scanner.java:1530)在java.util.scanner.nextInt(scanner.java: