所以我要做的是使用Scanner = new Scanner(new File("list.txt"))
从一个文件中填充一个包含30个名字的100个项目的数组。它需要使用"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();
}
}
}
D'哦......那些错误是可耻的哈哈。谢谢所有人的工作=]
答案 0 :(得分: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
循环终止条件。 (考虑当输入文件不包含标记时会发生什么)