Java 在eclipse的控制台中,如何一个接一个地打印多个内容?

Java 在eclipse的控制台中,如何一个接一个地打印多个内容?,java,eclipse,Java,Eclipse,嗯,这是总的想法。具有以下特征: Arbol A: *3 +2 +-3 +5) +-3) +8) +-1 +4) +-2 +0) +1) 结果: *14 +9 +-1 +5) +-3) +8) +2 +4) +-1 +0) +1) 我希望显示的结果如下所示: Arbol A:Resultado: *3 *14 +2 +9 +-3

嗯,这是总的想法。具有以下特征:

Arbol A:
*3
+2
+-3
+5)
+-3)
+8)
+-1
+4)
+-2
+0)
+1)
结果:
*14
+9
+-1
+5)
+-3)
+8)
+2
+4)
+-1
+0)
+1)
我希望显示的结果如下所示:

Arbol A:Resultado:
*3                                 *14
+2                                 +9
+-3                                +-1      
+5)                                +5)
+-3)                               +-3)
+8)                                +8)
+-1                                +2                       
+4)                                +4)
+-2                                +-1
+0)                               +0)
+1)                               +1)
这只是一个示例,其目的是显示任何内容,而不逐个查看结果。也许它是有用的,但“Arbol A”和“resultado”都是独立的方法


有什么想法吗?我什么也没找到。

尝试在字符串中使用\t(制表器),然后将值和文本元素放在字符串中的正确位置,\t的工作原理与在元素之间放置一个空格类似,只是它要大得多,应该看起来像结果2

尝试使用\t(制表器)在字符串中,然后只将值和文本元素放在字符串中的正确位置,\t的工作原理与在元素之间放置一个空格相似,只是它要大得多,并且应该使它看起来像结果2。没有办法像这样打印到控制台。你必须逐行打印。不过,您可以做的是,将两个字符串切碎,并将它们排列在列中,生成一个看起来有两列的字符串。然后可以打印此字符串

这意味着您必须编辑打印输出的方法,以便它们不打印输出,而是以字符串形式返回输出。例如,这样的方法:

public static void print1To10() {
    for(int i = 0 ; i < 10 ; i++) {
        System.out.println(i);
    }
}
输出:

Hello World,                 This is the right column,
This is some sample text.    which is on the right of the left column.
Testing Testing Testing      This column
Lorem Ipsum                  has
                             more
                             rows.

没有办法像那样打印到控制台。你必须逐行打印。不过,您可以做的是,将两个字符串切碎,并将它们排列在列中,生成一个看起来有两列的字符串。然后可以打印此字符串

这意味着您必须编辑打印输出的方法,以便它们不打印输出,而是以字符串形式返回输出。例如,这样的方法:

public static void print1To10() {
    for(int i = 0 ; i < 10 ; i++) {
        System.out.println(i);
    }
}
输出:

Hello World,                 This is the right column,
This is some sample text.    which is on the right of the left column.
Testing Testing Testing      This column
Lorem Ipsum                  has
                             more
                             rows.

假设没有其他输出到STDOUT,您可以劫持
System.out
,在其他方法运行时捕获输出,将
System.out
返回到其正常状态,然后重新格式化捕获的输出并打印它

PrintStream original = System.out;
ByteArrayOutputStream buffer = new ByteArrayOutputStream(4096);
PrintStream tempPrinter = new PrintStream(buffer);
System.setOut(tempPrinter);

// call methods that print

tempPrinter.flush();
System.setOut(original);

String output = buffer.toString(); // contains all output, including new lines
我将它留给您格式化并输出到所需格式。

您可能会发现
for(String line:output.split(\\R”)
line.endsWith(“:”)
在这项工作中很有用。

假设您没有其他输出到STDOUT,您可以劫持
System.out
,在其他方法运行时捕获输出,将
System.out
返回到其正常状态,然后重新格式化捕获的输出并打印

PrintStream original = System.out;
ByteArrayOutputStream buffer = new ByteArrayOutputStream(4096);
PrintStream tempPrinter = new PrintStream(buffer);
System.setOut(tempPrinter);

// call methods that print

tempPrinter.flush();
System.setOut(original);

String output = buffer.toString(); // contains all output, including new lines
我将它留给您格式化并输出到所需格式。

您可能会发现
for(String-line:output.split(\\R”)
line.endsWith(“:”)
在这项工作中很有用。

您能编辑这两个“独立的方法”吗?JDK中没有任何东西可以做到这一点,我甚至从来没有听说过这种事情,更不用说做了。此外,请不要张贴输出图像;编辑您的问题,并将问题中的示例内容以代码格式的纯文本(即缩进4个空格)@Sweeper是的,这些是不同的方法。我用了一些二叉树作为例子,因为这就是我现在正在研究的内容。@Bohemian Correction done。谢谢@daenius我问您是否打算编辑这两种方法(请参阅我的答案了解为什么需要这样做)。所以我想这是肯定的?你能编辑这两个“独立的方法”吗?JDK没有任何东西可以做到这一点,我从来没有听说过有人谈论过这种事情,更不用说做了。此外,请不要张贴输出图像;编辑您的问题,并将问题中的示例内容以代码格式的纯文本(即缩进4个空格)@Sweeper是的,这些是不同的方法。我用了一些二叉树作为例子,因为这就是我现在正在研究的内容。@Bohemian Correction done。谢谢@daenius我问您是否打算编辑这两种方法(请参阅我的答案了解为什么需要这样做)。所以我想这是肯定的?这对我没有帮助,但我发现了制表器的实用性\t。谢谢这对我没有帮助,但我发现了制表器的实用性\t。谢谢非常感谢,虽然它没有完全帮助我,但它给了我一个我将要做的想法。我上面提到的两个方法都返回一个BinaryTree,但是格式与您看到的一样(例如,根用星号标记)。因此,格式化程序方法返回一个字符串。有了这些信息和你教给我的,我会做一个方法,使用BinaryTrees返回所需的一个(我在想,同时我会按每一个级别下树,我会打印每两棵树)。我希望你明白我的想法。再次感谢@大牛,我想你已经接近解决方案了。难道你不能将格式化程序方法返回的字符串传递到
putSideBySide
?使用你的方法和你建议同时使用你的方法和我的方法,事情就是不起作用。例如,“这是右栏”出现在“Lorem Ipsum”旁边的第三行。但别担心,我会照我说的去做。如果这是一个成功,我会把它链接到这里或者其他一些东西。谢谢你,虽然它没有完全帮助我,但它给了我一个我想要的东西的想法