1

だから私がやろうとしているのは、Scanner = new Scanner(new File("list.txt")). ファイルの末尾にあるループを終了するには、番兵を使用する必要が"DONE"あります。

どうすればいいですか?array[arraySize] = value();型の不一致を教えてくれます

public class List
{
  public static void main(String[] args) throws FileNotFoundException
  {
    double array[] = new double[100];
    int arraySize = 0;
    String value;
    String sentinel = "DONE";

    Scanner inFile = new Scanner(new File("list.txt"));
    value = inFile.next();
    while (value != sentinel) 
    {
      array[arraySize] = value();
      arraySize++;
      value = inFile.next();
    }
  }
}

ああ....それらの間違いは恥ずかしいです笑。おかげですべてが機能しました =]

4

1 に答える 1

1

いくつかの問題があります。これらの行を次から変更する必要があります。

double array[] = new double[100]; // can't assign string to double
                                  // (since you said "30 names", I assume
                                  //  you aren't trying to get numbers from
                                  //  the file)
...
while (value != sentinel) // this performs pointer comparison, whereas you want
                          // string comparison
...
    array[arraySize] = value(); // value is a variable, not a function

に:

String array[] = new String[100];
...
while (!value.equals(sentinel))
...
    array[arraySize] = value;

注:whileさらに、ループの終了条件を強化するために、いくつかの防御的なプログラミング チェックを追加することをお勧めします。(入力ファイルにセンチネルが含まれていない場合に何が起こるかを考えてください)

于 2012-12-07T19:26:35.723 に答える