java - 将使用 System.out.print() 的方法更改为与 System.out.println() 一起使用

标签 java

我有以下代码可以正常工作:

public static void printTrain(String[][] train, int max_height) {
    // Controls the height, 0 means the top
    for (int i = 0; i < max_height; i++) {
        // Controls the wagon index
        for (int j = 0; j < train.length; j++) {
            if (j != train.length - 1)
                System.out.print(train[j][i] + " ");
            else
                System.out.print(train[j][i]);
        }
        System.out.println();
    }
}

但是,对于我当前的项目,我只允许使用一个特殊的库(终端),它只允许我使用 Terminal.printLine(...); .

所以我必须改变方法,使它只使用 Terminal.printLine() <=> System.out.println()。

这是我走了多远:
public static void printTrain(String[][] train, int max_height) {
    StringBuilder trainGraphic = new StringBuilder();
    // Index for the height of a wagon
    for (int i = 0; i < max_height; i++) {
        // Wagon index
        for (int j = 0; j < train.length; j++) {
            if (j != train.length - 1) { // This means you need to print the connector
                trainGraphic.append(train[j][i]).append(" ++ ");
            } else {
                trainGraphic.append(train[j][i]).append("    ");
            }
        }
        Terminal.printLine("");
    }
}

无论我尝试什么,它都没有按预期工作,并且总是打印错误。
如何更改代码使其仅使用 Terminal.printLine()?

最佳答案

当前您正在创建一个 StringBuilder对于整个方法 - 但从未真正打印过它的结果。相反,创建一个 StringBuilder每行输出。与您的原始代码相比,变化不大:

public static void printTrain(String[][] train, int max_height) {
    // Controls the height, 0 means the top
    for (int i = 0; i < max_height; i++) {
        // Create a StringBuilder for this specific line
        StringBuilder builder = new StringBuilder();
        // Controls the wagon index
        for (int j = 0; j < train.length; j++) {
            if (j != train.length - 1)
                builder.append(train[j][i] + " ");
            else
                builder.append(train[j][i]);
        }
        // Print out the line we've prepared in the StringBuilder
        Terminal.printLine(builder.toString());
    }
}

关于java - 将使用 System.out.print() 的方法更改为与 System.out.println() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60196048/

相关文章:

java - 是否有 Clojure 或 Scala 的持久不可变 vector 的 Java 版本?

java: TreeSet顺序

java - JSON 解析。字符串作为 Json 对象数组

java - 应该如何维护序列化对象?

java - 类层次结构设计

java - 联赛表顺序积分

java - (Mac)jshell找不到运行环境

java - 我们可以将 List<WebElement> 的对象作为参数传递给函数吗?

java - Eclipse 格式化程序/清理失败

java - Java 中这段代码中的 ExecutorService.submit 和 ExecutorService.execute 有什么区别?