使用扫描程序和字符串标记生成器读取文件并检索邻接列表

时间:2013-11-24 07:50:52

标签: java file java.util.scanner stringtokenizer

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.StringTokenizer;

public class Graph1 {
    public static void main(String[] args) throws FileNotFoundException {
        int linecount = 0, ec = 0;
        int nbin = 0, cbin = 0;
        int[][] data = new int[6][6];
        String e = "e";
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter input file name: ");
        String newfile = sc.nextLine() + ".txt";
        File file = new File(newfile);
        Scanner scan = new Scanner(file);
        while ((scan.hasNext())) {
            StringTokenizer t = new StringTokenizer(scan.nextLine());
            if(t.nextToken().equals(e)) {
                ec++;System.out.print("ec.." + ec );
                nbin = Integer.parseInt(t.nextToken());
                cbin = Integer.parseInt(t.nextToken());
                data[nbin][cbin] = 1;
            }
        }

我的输入文件是:

jjjjjjjjj
e 1 3
e 2 5
e 3 4
e 4 1
e 5 3

这里生成邻接矩阵。我已经更新了文件。我希望将文件条目转换为邻接列表

1 个答案:

答案 0 :(得分:0)

更改data声明
 int[][] data = new int[5][5];

int[][] data = new int[6][6];

因为,cbin=5

  data[nbin][cbin] = 1;// ArrayIndexOutOfBoundsException.