我是Java新手。如何从文本文件中的一行读取每个整数。我知道读者类具有读取和读取行功能。但在我的情况下,我不仅要读取文件中的整数,还想知道行何时更改。因为每一行的第一个元素表示一个数组索引,所有相应的元素都是附加到该索引的链接列表值。
例如,请参阅下面的第4行。在这种情况下,我不仅要读取每个整数,而且每行的第一个整数都是一个数组索引,所以我将有一个4元素数组,每个数组元素对应一个列表,其中A [1] - > 4,A [2] - > 1,3,4和soo。
1 4
2 1 3 4
3 2 5
4 2
正确检索整数后,我计划通过
填充它们ArrayList<Integer>[] aList = (ArrayList<Integer>[]) new ArrayList[numLines];
编辑:我曾在一条评论中被问到我认为太过分了,以及我被困在哪里以下是我的想法(就原始和pseoudo代码混合而言)..
while (lr.readLine() != null) {
while ( // loop through each character)
if ( first charcter)
aList[index] = first character;
else
aList[index]->add(second char.... last char of the line);
}
由于
答案 0 :(得分:0)
感谢扫描仪提示,Andrew Thompson。
这就是我实现它的方式
Scanner sc =new Scanner(new File("FileName.txt"));
ArrayList<Integer>[] aList = (ArrayList<Integer>[]) new ArrayList[200];
String line;
sc.useDelimiter("\\n");
int vertex = 0;
while (sc.hasNextLine()) {
int edge = 0;
line = sc.nextLine();
Scanner lineSc = new Scanner(line);
lineSc.useDelimiter("\\s");
vertex = lineSc.nextInt() - 1;
aList[vertex] = new ArrayList<Integer>();
int tmp = 0;
System.out.println(vertex);
while (lineSc.hasNextInt()) {
edge = lineSc.nextInt();
aList[vertex].add(edge);
System.out.print(aList[vertex].get(tmp) + " ");
++tmp;
}
System.out.println ();
}