1

我是 Java 新手。我如何从文本文件的一行中读取每个整数。我知道 reader 类有 read 和 readline 函数。但就我而言,我不仅想读取文件中的整数,还想知道行何时更改。因为每一行的第一个元素表示一个数组索引,所有对应的元素都是附加到该索引的链表值。

例如,请参见下面的第 4 行。在这种情况下,我不仅要读取每个整数,而且每行的第一个整数将是数组索引,因此我将有一个 4 元素数组,每个数组元素对应于 A[1]-> 4, A 的列表[2]-> 1,3,4 等等。

1 4

2 1 3 4

3 2 5

4 2

正确检索整数后,我计划通过

ArrayList<Integer>[] aList =  (ArrayList<Integer>[]) new ArrayList[numLines];

已编辑:有人问我到目前为止我的想法以及我被困在哪里的评论,所以下面是我的想法(就原始代码和伪代码混合而言)..

 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);
    }

谢谢

4

1 回答 1

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 ();
    }
于 2012-07-07T10:04:56.927 回答