Java – How to print a Pyramid

A Java example to print half and full pyramid, for fun.

CreatePyramid.java

package com.mkyong;

import java.util.Collections;

public class CreatePyramid {

    public static void main(String[] args) {

        int rows = 5;

        System.out.println("\n1. Half Pyramid\n");
        for (int i = 0; i < rows; i++) {

            for (int j = 0; j <= i; j++) {
                System.out.print("*");
            }

            System.out.println("");
        }

        System.out.println("\n2. Full Pyramid\n");
        for (int i = 0; i < rows; i++) {

            for (int j = 0; j < rows - i; j++) {
                System.out.print(" ");
            }

            for (int k = 0; k <= i; k++) {
                System.out.print("* ");
            }

            System.out.println("");
        }

        //java 8 , one line
        System.out.println("\n3. Full Pyramid (Compact)\n");
        for (int i = 0; i < rows; i++) {

            System.out.println(String.join("", Collections.nCopies(5 - i - 1, " "))
                    + String.join("", Collections.nCopies(2 * i + 1, "*")));

        }

        // java 8
        System.out.println("\n4. Inverted Pyramid\n");
        for (int i = rows; i > 0; i--) {

            System.out.println(String.join("", Collections.nCopies(5 - i, " "))
                    + String.join("", Collections.nCopies(2 * i - 1, "*")));

        }

    }

}

Output


1. Half Pyramid

*
**
***
****
*****

2. Full Pyramid

     * 
    * * 
   * * * 
  * * * * 
 * * * * * 

3. Full Pyramid (Compact)

    *
   ***
  *****
 *******
*********

4. Inverted Pyramid

*********
 *******
  *****
   ***
    *
	

References

  1. Collections.nCopies JavaDoc
  2. Python – Print a pyramid

7 comments on “Java – How to print a Pyramid

  1. Well! you really back my old day’s memory. Can we try a little different solution, like printing the above pyramid without using any loop? Also not like a solution to use a series of a print statement.

    Reply
  2. In Java 8, a *REAL* one line of Half Pyramid:
    Arrays.stream(new int[]{1, 2, 3, 4, 5}).forEach(i -> System.out.println(String.format(“%0” + i + “d”, 0).replace(“0”, “*”)));
    🙂

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *