java - 使用扫描仪和字符串标记器读取文件并检索邻接列表

标签 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

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

最佳答案

更改您的数据声明

 int[][] data = new int[5][5];

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

因为,在 cbin=5

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

关于java - 使用扫描仪和字符串标记器读取文件并检索邻接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172348/

相关文章:

java - 使用两个可能的输入值初始化数组

c# - 如何在 C# 中不使用绝对路径访问/打开文件?

node.js - 如何创建文件流并异步写入流?

python - ^@ sign in .txt 文件提示什么

java - 扫描仪未发现线路异常

java - 存储数字输入 - 为什么 Java Scanner nextInt() 允许 "invalid"零填充整数?

java - 以全屏模式启动 MPlayer

java - 为 HashMap 中存在的每个条目设置超时

java - "Character.toUpperCase"的结果被忽略

java - 获取现有的 ArrayList 并通过 getter 向其添加值