繁体   English   中英

在Java中打印字符的三角形

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM