【发布时间】:2014-01-11 14:07:03
【问题描述】:
目前我有一个生成树的程序。我使用https://stackoverflow.com/a/8948691 来获取树的字符串输出。为此,我稍微更改了链接中的函数:我没有使用System.out.println,而是重写了代码以满足我的要求:
public String getStringRepresentation(String prefix, boolean end, int position)
{
String retval = prefix + (position != -1? (end ? "└──" : "├──") + " " + position +(branches==null? "[" + content + "]" : ""):"") + "\r\n";
if(branches != null)
{
for (int i = 0; i < branches.size() - 1; i++) {
retval += branches.get(i).getStringRepresentation(prefix + (end ? " " : "│ "), false,i);
}
if (branches.size() >= 1) {
retval += branches.get(branches.size() - 1).getStringRepresentation(prefix + (end ?" " : "│ "), true,branches.size() - 1);
}
}
return retval;
}
一个示例文本输出将是
├── 0
│ ├── 0[F]
│ └── 1
│ ├── 0[V]
│ └── 1[A]
└── 1
├── 0[D]
└── 1[S]
这个字符串我显示如下:
JTextArea textarea = new JTextArea(infoMessage);
textarea.setFont(new Font("monospaced", Font.PLAIN, 14));
JOptionPane.showMessageDialog(null, textarea);
看起来像这样:
(如您所见,对齐方式不应该如此。)
【问题讨论】:
-
我们是否应该猜测您编写的代码,并猜测输出的外观和外观?
-
考虑向我们展示代码,最好是minimal complete valid example。请显示所需的输出和当前输出。
-
对不起,我更新了帖子
-
看起来代码几乎使用了
├──,但输出是├───,那么额外的─是从哪里来的?这真的与您在此处显示的代码相同吗? -
@KevinPanko:我检查了输出,只有两个“─”。其实我这里放的代码就是从图片中的输出复制过来的。
标签: java string text tree monospace