这是我的代码:
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt();
int m = in.nextInt();
String s = in.nextLine();
for (int i = 0; i < m; i++) {
int pos = in.nextInt(); // <- Line 14
char c = (char)in.nextByte();
s = s.substring(0, pos) + c + (pos + 1 < n ? s.substring(pos + 1) : "");
System.out.println(f(s));
}
}
}
}
输入后
10 3
.b..bz....
该程序立即引发异常:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Test.main(Test.java:14)
我甚至没有机会输入pos
和c
。
有人能告诉我这个片段有什么问题吗?提前谢谢。
答案 0 :(得分:3)
int pos = in.nextInt();
对于无法转换为整数的b的输入。这就是抛出异常的原因。