Java 当扫描器读取最后一个单词时停止扫描器

Java 当扫描器读取最后一个单词时停止扫描器,java,java.util.scanner,Java,Java.util.scanner,我对扫描器不是很有经验,但我写了一个方法从txt文件中读取每个单词,并为每个单词添加一个int,但它们int只是不断增加。我希望它在读到最后一句/添加最后一句时停止 public void drawnames(Graphics g) throws FileNotFoundException{ int str = 0; String[] string = new String[800*600]; int xpos = 100; int ypos = 100;

我对扫描器不是很有经验,但我写了一个方法从txt文件中读取每个单词,并为每个单词添加一个int,但它们int只是不断增加。我希望它在读到最后一句/添加最后一句时停止

    public void drawnames(Graphics g) throws FileNotFoundException{
    int str = 0;
    String[] string = new String[800*600];
    int xpos = 100;
    int ypos = 100;
    @SuppressWarnings("resource")
    Scanner s = new Scanner(new BufferedReader(new FileReader("Particles/Names.txt")));
    while(s.hasNext()){
        string[str] = s.next();
        g.drawString(string[str] + str, xpos, ypos);
        str = str + 1;
        ypos = ypos + 100;
    }
}
s、 HastNext()将始终返回true,因为s从不更改

您可以使用hasNextline()来代替


查看此处的文档:

在while循环之后立即添加以下内容:

s.close();

为什么
str
drawnames
之外?什么int持续增加?我很困惑是的,int(str)一直在增加。这是个问题吗?str定义在哪里!?!?!还有绳子!好的,我添加了str和string,是的,我希望str在到达最后一行/字时停止增加,那么你是说它永远不会停止增加?你的意思是它被卡在无限循环中?在while循环后用s.Close()关闭扫描仪;我试着改变了,但它还是继续上升:LNo。s确实改变了。s、 next()强制s进行更改。