在Java中处理点格式图的节点和边

在Java中处理点格式图的节点和边,java,graphviz,dot,directed-acyclic-graphs,Java,Graphviz,Dot,Directed Acyclic Graphs,我有一个点格式的图形作为字符串。我想得到它的节点,边和它们的数据进行处理。我正在寻找一个处理给定点格式图形的Java库。请举个例子 digraph G { rankdir=TB V1 [a=1, b=2, label="V1"]; V2 [a=4, b=0, label="V2"]; V3 [a=1, b=3, label="V3"]; V4 [a=3, b=7, label="V4"]; V1 -> V2 [path=a, label="a

我有一个点格式的图形作为字符串。我想得到它的节点,边和它们的数据进行处理。我正在寻找一个处理给定点格式图形的Java库。请举个例子

digraph G { rankdir=TB
    V1 [a=1, b=2, label="V1"]; 
    V2 [a=4, b=0, label="V2"]; 
    V3 [a=1, b=3, label="V3"]; 
    V4 [a=3, b=7, label="V4"];

    V1 -> V2 [path=a, label="a"];  
    V2 -> V3 [path=b, label="b"]; 
    V1 -> V4 [path=c, label="c"];
    V2 -> V4 [path=d, label="d"];
}

假设您想要使用JGraphT库,您可以使用以下类:

您需要传递VertexProvider和EdgeProvider,它们必须返回顶点和边;它们还可以包含其他属性的附加逻辑:

SimpleDirectedGraph< String ,DefaultEdge> labeledGraph = new SimpleDirectedGraph<>(DefaultEdge.class);
DOTImporter<Integer,DefaultEdge> importer = new DOTImporter<>(
    (String label, Map<String, Attribute> attributes) -> {
          // handle the attributes here
         return label;
    },
    (from, to, label, attributes) -> {
         // handle the attributes here
         return labelGraph.addEdge(from, to);
    });
importer.importGraph(labelGraph, yourFileReader)
SimpleDirectedGraphlabeledGraph=newsimpledirectedgraph(DefaultEdge.class);
DOTImporter=新的DOTImporter(
(字符串标签、贴图属性)->{
//在这里处理属性
退货标签;
},
(从、到、标签、属性)-> {
//在这里处理属性
返回labelGraph.addEdge(从,到);
});
importer.importGraph(labelGraph,yourFileReader)

要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,以及迄今为止为解决这一问题所做的工作。