我写了下面的代码,打印出由星号组成的多个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();
}
答案 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();