从方法返回String而不是打印到System.out

时间:2018-06-08 02:10:54

标签: java json

我写了下面的代码,打印出由星号组成的多个E形状。我想知道如何从方法返回String而不是打印到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();
}

1 个答案:

答案 0 :(得分:1)

您可以使用字符串附加替换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而不是附加到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();