我正在做作业,我必须使用nextLine()方法读取输入。当我复制所有输入行并将其粘贴到控制台时,该程序不会读取最后一行。我怎么解决这个问题。

我需要的 :

line1
line2
line3


我得到什么:

line1
line2


这是我的代码

public class Name{
    public static void main(String [] args){
        Scanner scn = new Scanner(System.in);
        str = scn.nextLine();

        while(scn.hasNextLine()){
        .
        .
        .
        str = scn.nextLine();
        }
        scn.close();
    }
}

最佳答案

我没有任何理由检查null-您应该使用scn.hasNextLine()代替,当Scanner文件中没有更多行可供读取时,它将停止迭代。

这是一个代码示例-我们将System.in的读数移入循环,并添加停止条件,这样就不会出现无限循环。

Scanner scn = new Scanner(System.in);
String str;

while(scn.hasNextLine()){
    str = scn.nextLine();
    System.out.println(str);
    if(str.equalsIgnoreCase("stop")) {
        break;
    }
}

关于java - 如何使用Scanner.nextLine()读取最后一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22746266/

10-09 13:43