Java Program to Print Hexagonal Star Pattern

Program to Print Hexagonal Star Pattern

In this article we will see how to print hexagonal star pattern.

Example-1

When each side contains 4 stars
   *
  * *
 *   *
*     *
*     *
*     *
*     *
 *   *
  * *
   *
Example-2 
When each side contains 6 stars
 
     *
    * *
   *   *
  *     *
 *       *
*         *
*         *
*         *
*         *
*         *
*         *
 *       *
  *     *
   *   *
    * *
     *

Have you mastered basic programming topics of java and looking forward to mastering advanced topics in a java programming language? Go with these ultimate Advanced java programs examples with output & achieve your goal in improving java coding skills.

JAVA Code:

Method-1 : Static Star Character

import java.util.*;

class Main
{
    public static void main (String[] args)
    {
        Scanner sc=new Scanner(System.in);
        // Asks for user input to enter any number
        // Where that number of stars will be printed 
        // in a side of hexagonal pattern
        System.out.print("Enter the number:");
        int side = sc.nextInt();
        
        int len = 2 * side - 1;
     
        // Printing upper part
        for (int i = 0; i < side; i++)
        {
            int element = i + side;
     
            // prints the star and spaces
            for (int k = 0; k < element; k++)
            {
                // printing the star
                if ((k == side + i - 1) || (k == side - i - 1))
                    System.out.print("*");
                // printing the space
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
     
        // Printing middle part
        //  Two vertical lines will be printed with middle space
        for (int i = 0; i < side - 2; i++)
        {
            for (int j = 0; j < len; j++)
            {
                // printing star
                if (j == 0 || j == len - 1)
                    System.out.print("*");
                // printing space
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
     
       // Printing lower part
        int r = side - 1;
        for (int i = r; i >= 0; i--)
        {
            int elem = i + side;
            for (int k = 0; k < elem; k++)
            {
                // printing the star
                if ((k == side + i - 1) || (k == side - i - 1))
                    System.out.print("*");
                // printing the space
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
  
}

Output:

Enter any number: 

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

Method-2 : User Input Character

import java.util.*;

class Main
{
    public static void main (String[] args)
    {
        Scanner sc=new Scanner(System.in);
        // Asks for user input to enter any number
        // Where that number of stars will be printed 
        // in a side of hexagonal pattern
        System.out.print("Enter the number:");
        int side = sc.nextInt();
        // sks for user input to enter any character
        // Where that character will be printed 
        //in each side of hexagonal pattern
        System.out.print("Enter the character:");
        char ch= sc.next().charAt(0);
        
        int len = 2 * side - 1;
     
        // Printing upper part
        for (int i = 0; i < side; i++)
        {
            int element = i + side;
     
            // prints the star and spaces
            for (int k = 0; k < element; k++)
            {
                // printing the star
                if ((k == side + i - 1) || (k == side - i - 1))
                    System.out.print(ch);
                // printing the space
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
     
        // Printing middle part
        //  Two vertical lines will be printed with middle space
        for (int i = 0; i < side - 2; i++)
        {
            for (int j = 0; j < len; j++)
            {
                // printing star
                if (j == 0 || j == len - 1)
                    System.out.print(ch);
                // printing space
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
     
       // Printing lower part
        int r = side - 1;
        for (int i = r; i >= 0; i--)
        {
            int elem = i + side;
            for (int k = 0; k < elem; k++)
            {
                // printing the star
                if ((k == side + i - 1) || (k == side - i - 1))
                    System.out.print(ch);
                // printing the space
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
  
}

Output:

Enter any number:6
Enter any character:@     

      @
    @ @
   @   @
  @     @
 @       @
@         @
@         @
@         @ 
@         @
@         @ 
@         @ 
 @       @ 
  @     @
   @   @ 
    @ @
      @

Related Java Star Pattern Programs: