java - java.util.InputMismatchException 正在发生
问题描述
我正在尝试在此代码中输入值,但得到一个
java.util.InputMismatchException
我已经尝试了很多次,但仍然没有得到正确的。(编译正常)
import java.util.Scanner;
class Test {
String name;
int rollno;
Test(String x, int y) {
this.name = x;
this.rollno = y;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Test[] t = new Test[2];
for(int i = 0; i<2 ;i++) {
String s = sc.nextLine();
int x = sc.nextInt();
t[i] = new Test(s,x);
}
for(int j = 0 ; j<2 ; j++) {
System.out.println(t[j].name + "----" + t[j].rollno);
}
}
}
样本输出:
java Test
vinod
24
kumar
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 Test.main(test4.java:22)
解决方案
String s = sc.nextLine();
int x = sc.nextInt();
sc.nextLine(); // <-- switch to the next line after input int value
t[i] = new Test(s, x);
完整代码可能如下所示:
public static void main(String... args) {
for (Test test : readData(2))
System.out.println(test.name + " ---- " + test.rollno);
}
private static Test[] readData(int total) {
try (Scanner scan = new Scanner(System.in)) {
Test[] data = new Test[total];
for (int i = 0; i < data.length; i++, scan.nextLine())
data[i] = new Test(scan.nextLine(), scan.nextInt());
return data;
}
}
推荐阅读
- c# - chrome混合内容和ERR_TOO_MANY_REDIRECTS错误
- node.js - 错误 [ERR_REQUIRE_ESM] - Husky,lint-staged,eslint - nodeJS:
- javascript - 如何在反应中使用 axios 发出 POST 请求?
- reactjs - React Navigation:TypeError:未定义不是对象(评估'navigation.navigate')问题
- node.js - 当我尝试发送输出数据时,Node.Js 代码返回 [object Promise]
- cpanel - 云共享 Linux 托管的最佳限制是什么?
- inheritance - 如何将属性和行为添加到已编写的类
- python - 文件对话框选择图像路径并使用 python 文件 .py 使用该路径运行
- php - 来自 Postman 或应用程序的 API 调用的 502 Bad gateway 问题
- c - 参数如何在 C 中工作 - 以字符串作为参数运行函数