有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在运行时循环java(scan.nextLine()!="$")

基本上,我试图做一个while循环,并一直读取,直到行输入为$。读取时,循环应该退出

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

代码如下:

while (scan.nextLine() != "$") {
    temp1 = scan.nextInt();
    temp2 = scan.nextInt();
    addEdge(temp1, temp2);
}

共 (4) 个答案

  1. # 1 楼答案

    请尝试以下方法:

    while (!"$".equals(scan.nextLine()))
    
  2. # 2 楼答案

    首先,用!{}代替!= 至于例外情况,您是否可能在nextInt调用中输入$

  3. # 3 楼答案

    您需要使用您读入的行(在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);
    }
    

    作为旁注:注意,我把你的“!=”换掉了对于not equals方法,这是因为不应使用==或!=比较字符串

  4. # 4 楼答案

    这两条语句中的一条正在引发异常-

            temp1 = scan.nextInt();
            temp2 = scan.nextInt();
    

    发生的情况是,在调用这些函数时,您正在输入一个非整数值