我对java有点陌生,习惯于用Python编写代码。因此,当涉及到获取用户输入时,我总是对执行这样的任务需要多少行代码感到恼火。所以我尝试创建自己的类来简化这个过程。我想表演这样的节目:
input("This is written in the console: ")
控制台内部:
This is written in the console: |
以下是迄今为止的代码:
public static String input(String text) {
Scanner scanner = new Scanner(System.in);
System.out.print(text);
String x = scanner.nextLine();
scanner.close();
return x;
}
当我使用该类一次时,一切正常,但当我再次尝试使用它时,我会遇到一个异常:
public static void main(String[] args) {
input("Input: ");
input("Input 2: ");
}
输出:
Input: blaaa
Input 2: Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at NumberConverter.input(NumberConverter.java:124)
at NumberConverter.main(NumberConverter.java:7)
我真的不知道为什么总是这样。请帮帮我,谢谢。
多亏了“SomeJavaGuy”,我终于成功了:
public class NumberConverter {
private static Scanner scanner = new Scanner(System.in);
public static String input(String text) {
System.out.print(text);
String x = scanner.nextLine();
return x;
}
public static void main(String[] args) {
input("Write your Input: ");
input("Write another Input: ");
scanner.close();
}
问题内容: 我有一个创建多个对象并将其放入一个类的类,如下所示: 我有一个从控制台扫描输入“ add”的应用程序,如果找到该应用程序,则调用如下所示的方法: 该应用程序应允许用户根据需要多次输入“添加”,但是在add调用该方法后将出现错误“找不到行” 。 我猜这是因为方法中的尚未关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我将如何修复它? 请注意,该程序尚未完成,因为我将添加一种出售这些
问题内容: 发生异常时,如何使扫描仪重试? 考虑此应用程序在CLI模式下运行。 例: 如果用户未输入类型输入,则抛出错误。但我想在错误消息出现之后。应该要求用户再次输入 宽度 。 怎么做? 问题答案: 如果我对您的理解正确,则希望该程序在失败后要求用户重新输入正确的输入。在这种情况下,您可以执行以下操作: 注意:您 只能 捕获并重试一次。这些方法会引发其他异常,如果您尝试重试这些异常,则您的应用程
在Java方面,我是一个业余爱好者,所以请原谅我的问题,如果它看起来很愚蠢:-P我有以下代码,旨在计算文件中的行数: 所以它很好,但我想将扫描仪重新用于其他目的,但nextLine已移动到文件的最后一行,我想将其重置回第一行。 (取而代之的是,我不得不使用另一台扫描仪来实现另一个目的,而在我看来,这似乎没有它应有的优雅。) 我肯定肯定有一种扫描仪方法可以将计数器重置为零? 谢谢 CJ
我想读取一个文本文件,并将每一行放入一个字符串(字符串数组)。然而,这需要扫描文件两次,一次是为了找出有多少行,另一次是为了创建一个这样大小的字符串数组。但它抛出了一个错误,重置方法似乎不起作用。 这是相关的代码片段。
问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和
问题内容: 使用Scanner类中的useDelimiter时遇到一些问题。 如果我有这个输入 美国广播公司 输出将是 AB 然后等到我键入另一个“-”以打印出最后一个字符 但是,如果我没有用户输入数据,而是将字符串插入到Scanner中,则代码将起作用。原因是什么?如何解决?我不想使用StringTokenzier 问题答案: 如果没有等待您输入另一个,则将错误地假定您已完成输入。 我的意思是,