我会尝试在没有列出代码的情况下解释我的问题,因为它是一项任务,我不希望发生任何抄袭,但如果需要,我会发布它。
我正在读取文本文件中的条目,如下所示:
John James 383838
保罗大小38525
史蒂夫狗45455
我有我的scanInput类设置来执行此操作。我可以打电话给getNumber(),它只会返回最新的。在这种情况下是45455.
我在我的方法中使用计数器,例如array[count].setNumber
然后一旦通过3姓,初始和数字读取count++
;
所以我认为它应该回到while循环并阅读其他循环。我有点困惑。无论我称之为哪个索引,它总会返回最新的索引。
例如
object.ScanInput();
System.out.println(object.getEntry()[2].getNumber());
将返回相同的值(txt文件中的最新条目号)。因此,调用哪个索引无关紧要,始终返回相同的值。
答案 0 :(得分:0)
内容全部用空格分隔,因此应该是您的分隔符。我会扫描整行并用白色空格分割。
答案 1 :(得分:0)
如果我不得不猜测,我会说同一个对象被添加到每个索引的数组中。因此,循环的所有迭代都会分配该对象的成员变量。
你错误地做了这样的事吗?
Entry[] entries = new Entry[3];
Entry e = new Entry();
for (int i = 0; i < entries.length; i++) {
entries[i] = e; // All items in the array contain the same Object
}
你可以这样做(因为你说你不能使用列表):
Entry[] entries = new Entry[3];
int count = 0;
while(inFile.hasNext()) {
String line = inFile.nextLine();
lineScanner = new Scanner(line);
Entry e = new Entry();
e.setSurname(lineScanner.next());
e.setInitial(lineScanner.next());
e.setNumber(lineScanner.next());
entries[count++] = e;
}