我正在尝试打印
a
bb
ccc
dddd
我所拥有的代码并不是我想要的模式,也不确定问题出在哪里。任何帮助都会很棒。
public static String generatRowOfSymbols(char letterOne, char letterTwo){
char i;
char j;
String letters = "";
String row = "";
for(i=letterOne; i<= letterTwo; i++ ){
for(j=letterOne; j<=i; j++){
row += i ;
}
letters += row + "\n";
}
return letters;
答案 0 :(得分:0)
首先,使用StringBuilder - 它更快,更高效。我没有计算长度,但如果你愿意,你可以。其次,看看我对你的方法做出的改变,让我知道它是否有意义。请注意我正在使用系统的行分隔符 - 如果你真的想追加'\ n',请这样做。
正如您应该看到的,我们的第一个for循环遍历字母。第二个是嵌套的,打印出count
个字母,每次更改字母时都会增加一个字母。
public static String generatRowOfSymbols(char letterOne, char letterTwo) {
StringBuilder letters = new StringBuilder();
int count = 1;
for (char i = letterOne; i <= letterTwo; i++, count++) {
StringBuilder row = new StringBuilder(count);
for (int j = 0; j < count; j++) {
row.append(i);
}
letters.append(row).append(System.lineSeparator());
}
return letters.toString();
}
使用String而不是StringBuilder修复了你的问题,因为使用StringBuilder时犹豫不决。
public static String generatRowOfSymbols(char letterOne, char letterTwo) {
String letters = "";
int count = 1;
for (char i = letterOne; i <= letterTwo; i++, count++) {
String row = "";
for (int j = 0; j < count; j++) {
row +=i ;
}
letters += row + System.lineSeparator();
}
return letters;
}
答案 1 :(得分:0)
public static String generatRowOfSymbols(char letterOne,char letterTwo){
char i;
char j;
String letters = "";
for(i=letterOne; i<= letterTwo; i++ ){
for(j=letterOne; j<=i; j++){
letters +=i;
}
letters+= "\n";
}
return letters;
答案 2 :(得分:0)
我能想出的最简单的解决方案如下。我使用IntStream但您可以轻松地将其更改为for循环;逻辑是一样的。
public static void printPattern(int rows) {
IntStream.range(0, rows).forEach(x -> {
IntStream.range(0, x + 1).forEach(y -> {
System.out.print((char) ('a' + x));
});
System.out.println();
});
}
假设我们按如下方式使用它。
printPattern(10);
输出:
a
bb
ccc
dddd
eeeee
ffffff
ggggggg
hhhhhhhh
iiiiiiiii
jjjjjjjjjj