0

我有一个文本文件“NYRoadNetwork.txt”,其中包含加权图的以下信息:

第一行代表图中的节点数,即30

第二行表示连接图中任意两个节点的边数,即17

剩余部分是连接任意两个节点的边的权重,例如。第三行的“0 1 2”表示连接节点0和1的边的权重为2。

30   
17   
0 1 2   
2 3 0    
4 5 1   
6 7 3   
8 9 4   
8 10 3  
0 11 2  
1 12 1  
13 14 3  
15 16 4   
17 18 2   
19 20 3   
19 21 3   
22 23 6    
24 25 1           
26 27 1            
28 29 1    

现在,我的问题是,我如何在从文本文件中读取数据后,编写一个 java 代码来生成完整的图形,而不是一个一个地输入每个节点和边?

仅供参考,这是我想要修改的原始 java 代码的一部分。

    // mark all the vertices
    Vertex 0 = new Vertex("0");
    Vertex 1 = new Vertex("1");
    Vertex 2 = new Vertex("2");
    Vertex 3 = new Vertex("3");
    Vertex 4 = new Vertex("4"); ......

    // set the edges and weight
    0.adjacencies = new Edge[]{ new Edge(1, 2) };
    0.adjacencies = new Edge[]{ new Edge(11, 2) };
    1.adjacencies = new Edge[]{ new Edge(12, 1) };
    2.adjacencies = new Edge[]{ new Edge(3, 0) };
    4.adjacencies = new Edge[]{ new Edge(5, 1) };
    6.adjacencies = new Edge[]{ new Edge(7, 3) }; .......
4

1 回答 1

0

您可以使用 BufferedReader从文件中读取一行。

之后使用 String.split() 方法将一行拆分为一个字符串数组。

我建议您在问此类问题之前先了解 Java API。

于 2017-03-09T06:48:59.930 回答