我有以下代码,运行良好:
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());
}
}