在 JTextArea 的多条线上显示 AVL 树遍历的输出


for(int i=0; i < list.length; i++)
{
    System.out.printf(" %2d",list[i]); // Formats right justified
    if ((i+1)%10==0)
    {
        System.out.println(); // Adds a new line after 10 values
    }
}

我正在尝试在 JTextArea() 中的多行上显示 AVL 树顺序、预序和后序遍历的输出,最好是一行 10 个数字。我在 JTextArea() 中尝试了一下,将 5 和 10 添加到 JTextArea() 参数 (JTextArea(5, 10)),但它不起作用。如果是这样,如何更改提供的"for"循环来实现此目的?谢谢你的帮助。

我认为你需要一个(高效的)"字符串聚合对象"这样的东西:

StringBuilder sb = new StringBuilder();//before your loop

(字符串 + 字符串 + 字符串 ..被认为是无效的,但也有可能)

在您的循环中,您填充sb

for (int i = 0; i < list.length; i++) {
    sb.append(String.format(" %2d", list[i])); // Formats right justified
    if ((i + 1) % 10 == 0) {
        sb.append(System.lineSeparator()); // Adds a new line (windows or unix like) after 10 values
    }
}

(@see StringBuilder, String.format, System.lineSeparator)

之后,您可以设置文本区域的文本,例如:

myJTextArea.setText(sb.toString());

最新更新