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());