读取输入并调用数组索引

时间:2014-04-20 17:39:23

标签: java

我会尝试在没有列出代码的情况下解释我的问题,因为它是一项任务,我不希望发生任何抄袭,但如果需要,我会发布它。

我正在读取文本文件中的条目,如下所示:

  

John James 383838
  保罗大小38525
  史蒂夫狗45455

我有我的scanInput类设置来执行此操作。我可以打电话给getNumber(),它只会返回最新的。在这种情况下是45455.

我在我的方法中使用计数器,例如array[count].setNumber 然后一旦通过3姓,初始和数字读取count++;

所以我认为它应该回到while循环并阅读其他循环。我有点困惑。无论我称之为哪个索引,它总会返回最新的索引。

例如

object.ScanInput();
System.out.println(object.getEntry()[2].getNumber());

将返回相同的值(txt文件中的最新条目号)。因此,调用哪个索引无关紧要,始终返回相同的值。

2 个答案:

答案 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;
  }