在读取最后一个单词时停止扫描仪

时间:2013-01-02 23:17:41

标签: java java.util.scanner

我对扫描仪不太熟悉,但是我写了一个方法来从txt文件中读取每个单词,并为每个单词添加一个到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;
    }
}

2 个答案:

答案 0 :(得分:1)

s.HastNext()将始终返回true,因为s永远不会改变。

您可以改为使用hasNextline()。

在这里查看文档:{​​{3}}

答案 1 :(得分:1)

在你的while循环之后立即添加:

s.close();