当前位置: 首页 > 知识库问答 >
问题:

扫描器类和线程“main”java.util.InputMismatchException错误中的一个异常

赵炯
2023-03-14
public class PolynomialTest {

public static void main(String[] args) throws IOException {

Scanner fileData = new Scanner(new File("operations.txt"));
Polynomial math = new Polynomial();
int coeff = fileData.nextInt();
int expo = fileData.nextInt();

while (fileData.hasNext()) {

    Scanner nextTerm = new Scanner(fileData.nextLine());

    if (nextTerm.next().equalsIgnoreCase("insert")) {

        math.insert(coeff, expo);
        System.out.println("The term (" + coeff + ", " + expo
                + ") has been added to the list in its proper place");
        System.out.println("The list is now: " + math.toString());

    } else if (nextTerm.next().equalsIgnoreCase("delete")) {

        math.delete(coeff, expo);
        System.out.println("The following term has been removed ("
                + coeff + ", " + expo + ")");
        System.out.println("The list is now: " + math.toString());

    } else if (nextTerm.next().equalsIgnoreCase("reverse")) {

        math.reverse();
        System.out
                .println("The list was reversed in order and the list is now: "
                        + math.toString());

    } else if (nextTerm.next().equalsIgnoreCase("product")) {

        System.out.println("The product of the polynomial is: "
                + math.product());

    } else {

        System.out.println("Not a recognized input method");

    }
    nextTerm.close();
}
PrintWriter save = new PrintWriter("operations.txt");
save.close();
fileData.close();

共有1个答案

丁文轩
2023-03-14

InputMismatchException由扫描程序引发,以指示检索到的令牌与预期类型的模式不匹配,或者令牌超出了预期类型的范围。

int coeff = fileData.nextInt();
int expo = fileData.nextInt();

尝试将上面的内容更改为下面的内容。(如果在两个单独的行中有前两个整数输入,否则请尝试在使用filedata.nextline().split(“”)读取它们后解析它们)

int coeff  = Integer.parseInt(fileData.nextLine());
int expo = Integer.parseInt(fileData.nextLine());

如果同一行中有2个整数

    String s[] = fileData.nextLine().split(" ");
    int coeff   = Integer.parseInt(s[0]);
    int expo  = Integer.parseInt(s[1]);
 类似资料:
  • 我正在编写一个程序,它接受来自文件的输入,并打印城市及其降雨量的列表。我在确定阵列长度和城市降雨量数据的扫描仪上遇到了麻烦。 我一直得到这个例外 在java.util.scanner.throwfor(scanner.java:909)在java.util.scanner.next(scanner.java:1530)在java.util.scanner.nextInt(scanner.java:

  • 我很难理解这个代码有什么问题。Dr.Java一切都很好,但是在另一个名为edhesive的代码运行平台上(我就是在这个平台上被分配这个项目的),它给我一个错误。我已经检查了所有我认为出错的地方,但仍然不知道哪里出了问题。 在edhesive上运行后,我得到了这个错误 有人能帮帮我吗?

  • 我刚开始我的大学java课程,在扫描器类中不断得到这个错误。 我不断得到的错误是:

  • 当我从nextInt()获取输入时,扫描器会抛出异常,但是如果我从nextLine()获取输入,然后将其解析为int,那么我的代码会正常运行。 如果可以将字符串输入解析为任何类型,为什么还要使用nextInt()或nextDouble()。

  • 我一直在努力学习扫描仪课程。我就是无法理解它的方法。我试着运行一组对我来说正确的代码。我试着做了一些调整,但还是没用。我为什么会收到这个错误的任何提示 线程mainjava.util.InputMismatchExceptionjava.util.Scanner.throwFor(未知源)java.util.Scanner.next(未知源)java.util.Scanner.nextInt(未知

  • 肯定有一条线,但我不明白为什么扫描仪看不到… 以下是文件的开头: 下面是我获取它的代码: 但我得到了错误: book1_enc的文件是我的LZW编码算法的输出。当我将文件传递给我的解码器时,我希望解码器知道字典的大小,在这种情况下是256...感谢您的阅读...