首页 > 解决方案 > 从方法返回一个字符串,而不是打印到 System.out

问题描述

我编写了以下代码,该代码打印了多个由星号组成的 E 形状。我想知道如何String从方法返回 a 而不是打印到System.out. 当我使用 String append 尝试它时,它只返回一行星号,而不是我想要的 E 形状。

返回可以是字符串方法或 JSON 格式。任何帮助都会很棒!

for (int i=0; i < 5; i++) {
    String print = i % 2 == 0 ? "*****    " : "*        ";
    for(int j=0; j < numberOfE; j++) {
        System.out.print(print);
    }
    System.out.println();
}

标签: javajson

解决方案


您可以替换System.out.print()为附加字符串,但也请记住替换System.out.println()为附加换行符到您的字符串。

String ans = "";
for (int i = 0; i < 5; i++) {
    String print = i % 2 == 0 ? "*****    " : "*        ";
    for (int j = 0; j < numberOfE; j++) {
        ans += print;
    }
    ans += '\n';
}
return ans;

StringBuilder使用 a而不是附加到 a也更有效String,尽管对于您的场景,差异可能并不明显:

StringBuilder ans = new StringBuilder();
for (int i = 0; i < 5; i++) {
    String print = i % 2 == 0 ? "*****    " : "*        ";
    for (int j = 0; j < numberOfE; j++) {
        ans.append(print);
    }
    ans.append('\n');
}
return ans.toString();

推荐阅读