[英]Print a triangle of characters in java
我正在尝试打印一个三角形的字符。 我想要这样
A
A B
A B C
A B C D
A B C D E
下面是我的代码。
public class Pro8Point3
{
public static void main(String[] args){
int space=29;
char ch;
for (int i=1; i<=5; i++) {
ch='A';
//Print spaces in decreasing order. A is at 29th position.
for (int j=1; j<=space; j++) {
System.out.println(" ");
}
//Print Triangle.
for (int k=1; k<=i; k++) {
System.out.print(ch+" ");
ch+=1;
}
space--;
// System.out.println();
}
System.out.println();
}
}
但是它没有给我欲望输出。 请指导我,我在这里哪里出错了。
System.out.println(" ");
应该
System.out.print(" ");
您应该在for循环的底部取消注释此行:
System.out.println();
最终代码,修复了格式并进行了上述更改:
public class Pro8Point3
{
public static void main(String[] args) {
int space=29;
char ch;
for (int i = 1; i <= 5; i++) {
ch = 'A';
//Print spaces in decreasing order. A is at 29th position.
for (int j = 1; j <= space; j++) {
System.out.print(" ");
}
//Print Triangle.
for (int k = 1; k <= i; k++) {
System.out.print(ch + " ");
ch+=1;
}
space--;
System.out.println();
}
}
}
输出:
A
A B
A B C
A B C D
A B C D E
在@smarx给出正确答案之后,我想发布一种通用方法来满足此类要求。 可能看起来像这样
public class Pro8Point3 {
public static void main(String[] args) {
print(5, 20);
}
private static void print(int level, int position) {
for (int i = 0; i < level; i++) {
char c = 'A';
for(int j = 1; j < level + position - i; j++)
System.out.print(" ");
for(int j = 0; j <= i; j++)
System.out.print(Character.valueOf(c++) + " ");
System.out.println();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.