-2

我必须在java中得到这样的输出

     digraph G 
   {
     main -> parse -> execute;
     main -> init;
     main -> cleanup;
     execute -> make_string;
     execute -> printf
     init -> make_string;
     main -> printf;
     execute -> compare;
     }

我试过这个

PrintStream out = new PrintStream(new FileOutputStream("graph.gv"));

         for(int i=0;i<1;i++)

    {
        System.out.println("digraph G {");

    for (String node : visited)

    {

        System.out.print(node);
        System.out.print("->");
        out.write(node);
        out.flush();

    }
   out.close();

    System.out.println();
    }
      System.out.println("}");
}

这是我的输出

      digraph G {
     A->B->E->
     }
     digraph G {
     A->B->D->E->
     }
     digraph G {
     A->B->C->E->
     }
     digraph G {
     A->B->C->D->E->
     }
     digraph G {
     A->D->E->
     }

但输出未正确打印

4

3 回答 3

1

删除这个:System.out.println("digraph G {");在for循环之外。也就是说,改变这个:

for(int i=0;i<1;i++)
{
   System.out.println("digraph G {");
   //Your remaining code
}

到:

System.out.println("digraph G {"); //Notice change here
for(int i=0;i<1;i++)
{
   //Your remaining code
}

这应该按预期工作。

于 2013-02-25T04:22:06.353 回答
0

用这个:

System.out.println("digraph G {");   //  To print it once
for(int i=0;i<1;i++)
{
    for(int j=0; j<visited.length()-1; j++)  // Accessing one less node to avoid extra "->" at the end
    for (String node : visited)
    {
        System.out.print(node);
        System.out.print("->");
        out.write(node);
        out.flush();
    }
    System.out.print(node);  //Printing the last node left
    out.flush();
    out.close();

    System.out.println();
}
System.out.println("}");
于 2013-02-25T04:55:23.273 回答
0

使用System.out.format()方法而不是System.out.println()

如果您想以某种方式格式化输出,可以使用 format()。

请参阅 Oracle 的 System.out.format 教程

于 2013-02-25T04:56:31.590 回答