0

我正在从文件中读取并将它们存储到数组中......

         f = new File("some file");
        try {
            s = new Scanner(f);
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }
        String theWord [] = new String[100];.
        while(s.hasNext()){

            int i=0;

            theWord[i]=s.next();
            //print
            System.out.println(theWord[i]);

            i++;     
        }
        System.out.println(theWord[0]);
        System.out.println(theWord[1]);

说文件里有一句话:Hello Programmer。输出是:

    Hello
    programmer
    programmer
    null

最后两行让我感到困惑。它表明 theWord 的 0 索引是程序员,而 1 索引是空的,此时零索引应该是 hello 并且 1 索引应该是程序员。

有什么帮助吗?

4

2 回答 2

4

你需要搬家:

 int i=0;

圈外。你总是更新theWord[0]价值。

于 2013-08-15T15:01:35.270 回答
3

您正在循环中重新初始化i,因此每次都会覆盖数组的第 0元素。0while

while(s.hasNext()){
    int i=0;  // Move this outside the while loop
于 2013-08-15T15:01:31.270 回答