How to Take Input From User Separated By Space in Java ? - GeeksforGeeks

15 Sep, 2021
There are 2 methods to take input from the user which are separated by space which are as follows:
Using BufferedReader Class and then splitting and parsing each valueUsing nextInt( ) method of Scanner class
Using BufferedReader Class and then splitting and parsing each value
Using nextInt( ) method of Scanner class
Let us discuss both the methods one by one in order to get a better understanding by implementing the same clean java programs. 
Method 1: 
Using BufferedReader Class and then splitting and parsing each value.
Procedure:
Using readline() method of BufferedReader and Scan the whole string.Split this String for str.split(” “)Iterate over the above array and parse each integer value using Integer.parseInt( ).
Using readline() method of BufferedReader and Scan the whole string.
Split this String for str.split(” “)
Iterate over the above array and parse each integer value using Integer.parseInt( ).
Example 
Java
// Java Program to Take Input from User Separated by Space// Using BufferedReader class // Importing required classesimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; // Main class// BufferedReaderTestclass GFG {     // Main driver method    public static void main(String[] args)        throws IOException    {         // Creating an object of BufferedReader class        BufferedReader bi = new BufferedReader(            new InputStreamReader(System.in));         // Custom integer array of size 10        int num[] = new int[10];        // Array of string type to store input        String[] strNums;         // Display message        System.out.println("enter string of numbers");         // Reading input a string        strNums = bi.readLine().split(" ");         for (int i = 0; i < strNums.length; i++) {            num[i] = Integer.parseInt(strNums[i]);        }         // Display message        System.out.println("printing stored numbers ");         // Printing the stored numbers using for loop        for (int i = 0; i < strNums.length; i++) {            System.out.println(num[i]);        }    }}
Output:
FIG = OUTPUT OF METHOD 1 
Method 2: Using nextInt() method of Scanner class.
Procedure: 
Using the nextInt() method of Scanner class and scan to scan the input.Using for loop to store input in an array.Iterate through the above array and parse each integer using sc.nextInt()
Using the nextInt() method of Scanner class and scan to scan the input.
Using for loop to store input in an array.
Iterate through the above array and parse each integer using sc.nextInt()
Example 
Java
// Java Program to Take Input from User Separated by Space// Using Scanner class // Importing required classesimport java.io.IOException;import java.util.Scanner; // Main class// Scanner classclass GFG {     // Main driver method    public static void main(String[] args)        throws IOException    {         // Display message for better readability        System.out.println("enter input ");         // Creating an object of Scanner class        Scanner sc = new Scanner(System.in);         // Declaring and initializing an array of size 10        int[] nums = new int[10];        int i;         // Loop to store input values in nums array        for (i = 0; i < nums.length; i++) {            nums[i] = sc.nextInt();        }         //  Display message        System.out.println("printing stored values");         // Printing stored values        for (i = 0; i < nums.length; i++) {            System.out.println(nums[i] + " ");        }    }}
Output:
FIG = OUTPUT OF METHOD 2
Note: The first method using Bufferedreader class and then splitting and parsing each value is much faster than using nixing() method of Scanner class. It is nearly 2 times faster than the second one. Bel;ow we do provide in order how to calculate the time consume by both methods by using  nanotime method 
// Initializing variables
long startTime, endTime;

// Start time
startTime = System.nanoTime(); {

// Insert code here
// Method 1 or method 2 code
}

// End time
endTime = System.nanoTime();
 
arorakashish0911
Java
Java Programs
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Constructors in Java
Exceptions in Java
Functional Interfaces in Java
Generics in Java
Java Programming Examples
Convert Double to Integer in Java
Implementing a Linked List in Java using Class
How to Iterate HashMap in Java?
Iterate through List in Java