java while(scan.nextLine()!="$")

Iul*_*uli 1 java loops while-loop

基本上,我试图做一个while循环,并继续阅读,直到线输入是$.当读取它时,循环应该退出.

但是我得到一个运行时异常java.util.InputMismatchException.

这是代码:

while (scan.nextLine() != "$") {
    temp1 = scan.nextInt();
    temp2 = scan.nextInt();
    addEdge(temp1, temp2);
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您需要使用您读入的行(在while条件内).

当你调用nextLine()时,你不仅要检查它是否等于"$",而且你还要扔掉它.

我假设您正在阅读如下输入:(我打赌你是)

1 2
3 4
0 1
4 5
$
Run Code Online (Sandbox Code Playgroud)

尝试以下方法:

String nextLineStr;
while( !((nextLinestr = scan.nextLine()).equals("$")))
{
String tokens [] = nextLineStr.split(" ");
temp1 = Integer.parseInt(tokens[0]);
temp2 = Integer.parseInt(tokens[1]);
addEdge(temp1,temp2);
}
Run Code Online (Sandbox Code Playgroud)

作为旁注:请注意,我为非等于方法切换了'!=',这是因为不应使用==或!=来比较字符串