基本上,我正在尝试进行while
循环,并继续阅读,直到行输入为$。当读取它时,循环应该退出。
但是我得到的运行时异常为java.util.InputMismatchException
。
以下是代码:
while (scan.nextLine() != "$") {
temp1 = scan.nextInt();
temp2 = scan.nextInt();
addEdge(temp1, temp2);
}
答案 0 :(得分:6)
您需要使用您读入的行(在while条件中)。
当你调用nextLine()时,你不仅要检查它是否等于“$”,而且还要把它扔掉。
我假设您正在阅读如下输入:(我打赌你是)
1 2
3 4
0 1
4 5
$
尝试以下方法:
String nextLineStr;
while( !((nextLinestr = scan.nextLine()).equals("$")))
{
String tokens [] = nextLineStr.split(" ");
temp1 = Integer.parseInt(tokens[0]);
temp2 = Integer.parseInt(tokens[1]);
addEdge(temp1,temp2);
}
作为旁注:请注意,我为非等于方法切换了'!=',这是因为不应使用==或!=
来比较字符串答案 1 :(得分:3)
首先,使用!
equals
代替!=
至于例外情况,您是否可以在nextInt
来电中输入$?
答案 2 :(得分:2)
请改为尝试:
while (!"$".equals(scan.nextLine()))
答案 3 :(得分:0)
这两个陈述中的一个是抛出异常 -
temp1 = scan.nextInt();
temp2 = scan.nextInt();
正在发生的是在调用这些值时输入非整数值。