我有点格式的图表作为字符串。我想得到它的节点,边和它们的数据进行处理。我正在寻找一个处理给定点格式图的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"];
}
答案 0 :(得分:1)
假设您要使用JGraphT - Library,您可以使用此类:http://jgrapht.org/javadoc/org/jgrapht/io/DOTImporter.html
你需要传递一个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)