Signup/Sign In

Java Program To Split an Array from Specified Position

In this tutorial, we will learn how to split an array from a specified position. This means now the array will divide into two separate arrays. But before moving forward, if you are not familiar with the concepts of the array, then do check the article Arrays in Java.

Input: 8 7 9 5 4 3 1 6 0 9 8 3 4

Output: Position = 5

Array 1: 8 7 9 5 4

Array 2: 3 1 6 0 9 8 3 4

Program 1: Split an Array from a Specified Position

In this method, we will see how to split an array from a specified position using loops.

Algorithm

  1. Start
  2. Declare the size of the array.
  3. Ask the user to initialize the array size.
  4. Declare the array.
  5. Ask the user to initialize the array.
  6. Input the position from where you want to split the array.
  7. Declare two more arrays to store the divided arrays.
  8. Copy the elements to the specified position to one array.
  9. Copy the next half of the elements to another array.
  10. Display both the array.
  11. Stop.

The below program demonstrates how to split an array from a specified position using loops.

/*Java program to split an array from a specified position*/
import java.util.*;  

public class Main  
{  
   public static void main(String args[])   
   {  
       Scanner sc=new Scanner(System.in);

      int n;    //Declare array size
      System.out.println("Enter the total number of elements ");
      n=sc.nextInt();     //Initialize array size

      int arr[]=new int[n];   //Declare array
      System.out.println("Enter the elements of the array ");
      for(int i=0; i<n ;i++)     //Initialize array
      {
          arr[i]=sc.nextInt();
      }
      
      System.out.println("Enter the position of the array : ");
      int pos=sc.nextInt();    //Enter the position from where you want to split the array
      
      int brr[]=new int[pos];   //Array to store the first half
      int z=n-pos;
      int crr[]=new int[z];    //Array to store the second half of the array
      
      //Display the elements of the original array 
      System.out.println("Original Array Elements are ");
      for(int i=0;i<n;i++)
       {
           System.out.print(arr[i]+ " ");
       }
       System.out.println("");

      //Copy the first half elements
      for(int i=0;i<pos;i++)
      {
          brr[i]=arr[i];
      }
      //Print the first half elements
      System.out.println("The first array elements are : ");
       for(int i=0;i<pos;i++)
       {
           System.out.print(brr[i]+ " ");
       }
       System.out.println("");
       
       //Copy the second half elements
       int k=0;
       for(int i=pos;i<n;i++)
       {
           crr[k]=arr[i];
           k++;
       }
       //Print the second half elements
       System.out.println("The second array elements are : ");
       for(int t=0;t<z;t++)
       {
           System.out.print(crr[t]+ " ");
       }
       
   }  
}  


Enter the total number of elements 10
Enter the elements of the array 2 3 4 1 5 6 7 2 8 9
Enter the position of the array: 4
Original Array Elements are
2 3 4 1 5 6 7 2 8 9
The first array elements are :
2 3 4 1
The second array elements are :
5 6 7 2 8 9

Program 2: Split an Array from a Specified Position

In this method, we will see how to split an array from a specified position using Arrays.copyofRange() method.

Algorithm

  1. Start
  2. Declare the size of the array.
  3. Ask the user to initialize the array size.
  4. Declare the array.
  5. Ask the user to initialize the array.
  6. Input the position from where you want to split the array.
  7. Declare two more arrays to store the divided arrays.
  8. Copy the elements to the specified position to one array using Arrays.copyofRange() method.
  9. Copy the next half of the elements to another array using Arrays.copyofRange() method.
  10. Display both the array.
  11. Stop.

The below program demonstrates how to split an array from a specified position using Arrays.copyofRange() method.

/*Java program to split an array from a specified position*/
import java.util.*;  
import java.util.Arrays; 

public class Main  
{  
   public static void main(String args[])   
   {  
       Scanner sc=new Scanner(System.in);

      int n;    //Declare array size
      System.out.println("Enter the total number of elements ");
      n=sc.nextInt();     //Initialize array size

      int arr[]=new int[n];   //Declare array
      System.out.println("Enter the elements of the array ");
      for(int i=0; i<n ;i++)     //Initialize array
      {
          arr[i]=sc.nextInt();
      }
      
      System.out.println("Enter the position of the array : ");
      int pos=sc.nextInt();    //Enter the position from where you want to split the array
      
      int brr[]=new int[pos];   //Array to store the first half
      int z=n-pos;
      int crr[]=new int[z];    //Array to store the second half of the array
      
      //Display the elements of the original array 
      System.out.println("Original Array Elements are ");
      for(int i=0;i<n;i++)
       {
           System.out.print(arr[i]+ " ");
       }
       System.out.println("");

      //Copy the first half elements
      brr=Arrays.copyOfRange(arr, 0, pos); 
      
      //Print the first half elements
      System.out.println("The first array elements are : ");
       for(int i=0;i<pos;i++)
       {
           System.out.print(brr[i]+ " ");
       }
       System.out.println("");
       
       //Copy the second half elements
       crr=Arrays.copyOfRange(arr, pos, n); 
       
       //Print the second half elements
       System.out.println("The second array elements are : ");
       for(int t=0;t<z;t++)
       {
           System.out.print(crr[t]+ " ");
       }
       
   }  
}  


Enter the total number of elements 10
Enter the elements of the array 4 5 8 3 1 4 6 7 3 2
Enter the position of the array : 6
Original Array Elements are
4 5 8 3 1 4 6 7 3 2
The first array elements are :
4 5 8 3 1 4
The second array elements are :
6 7 3 2



About the author:
I am the founder of Studytonight. I like writing content about C/C++, DBMS, Java, Docker, general How-tos, Linux, PHP, Java, Go lang, Cloud, and Web development. I have 10 years of diverse experience in software development.