- Java User Input (Scanner)
- Example
- Input Types
- Example
- How to Read a String from Console Input in Java ?
- Java – Read String from Console
- Examples
- 1. Read string from console input
- About System.in
- Conclusion
- How to take String Input in Java
- By Using Java Scanner class
- 1. Scanner.nextLine() Method
- Scanner.next() Method
- By using Java BufferedReader Class
- By using the Command Line Argument
- Read input string in java
- Read input string in java
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
Java User Input (Scanner)
The Scanner class is used to get user input, and it is found in the java.util package.
To use the Scanner class, create an object of the class and use any of the available methods found in the Scanner class documentation. In our example, we will use the nextLine() method, which is used to read Strings:
Example
import java.util.Scanner; // Import the Scanner class class Main < public static void main(String[] args) < Scanner myObj = new Scanner(System.in); // Create a Scanner object System.out.println("Enter username"); String userName = myObj.nextLine(); // Read user input System.out.println("Username is: " + userName); // Output user input >>
If you don’t know what a package is, read our Java Packages Tutorial.
Input Types
In the example above, we used the nextLine() method, which is used to read Strings. To read other types, look at the table below:
Method | Description |
---|---|
nextBoolean() | Reads a boolean value from the user |
nextByte() | Reads a byte value from the user |
nextDouble() | Reads a double value from the user |
nextFloat() | Reads a float value from the user |
nextInt() | Reads a int value from the user |
nextLine() | Reads a String value from the user |
nextLong() | Reads a long value from the user |
nextShort() | Reads a short value from the user |
In the example below, we use different methods to read data of various types:
Example
import java.util.Scanner; class Main < public static void main(String[] args) < Scanner myObj = new Scanner(System.in); System.out.println("Enter name, age and salary:"); // String input String name = myObj.nextLine(); // Numerical input int age = myObj.nextInt(); double salary = myObj.nextDouble(); // Output input by user System.out.println("Name: " + name); System.out.println("Age: " + age); System.out.println("Salary: " + salary); >>
Note: If you enter wrong input (e.g. text in a numerical input), you will get an exception/error message (like «InputMismatchException»).
You can read more about exceptions and how to handle errors in the Exceptions chapter.
How to Read a String from Console Input in Java ?
In this Java tutorial, you will learn how to read a string from console input entered by user using Scanner class, with examples.
Java – Read String from Console
To read a string from Console as input in Java applications, you can use Scanner class along with the InputStream, System.in.
When you are developing console applications using Java, it is very important that you read input from user through console.
In this tutorial, we will learn how to prompt user to input a string and then read the string from console input.
Examples
1. Read string from console input
In this example, we shall define a Scanner with the input stream, System.in.
System.in creates a standard input stream which is already open and ready to supply input data.
Scanner is simple text scanner which can parse primitive types and strings using regular expressions.
So, passing System.in to Scanner allows us to parse or read string from standard input stream, which is console.
Example.java
import java.util.Scanner; /** * An example program to read a String from console input in Java */ public class Example < public static void main(String[] args) < System.out.print("Enter a string : "); Scanner scanner = new Scanner(System. in); String inputString = scanner. nextLine(); System.out.println("String read from console is : \n"+inputString); >>
When the program is run, the execution waits after printing the prompt string «Enter a string : » , where the user would enter a string something like «hello world» as shown in the following console window.
The program prints the string read from the console input in the next step. The whole output in the console would be as shown in the following.
Enter a string : hello world String read from console is : hello world
About System.in
In the context of reading something from the console, System[https://docs.oracle.com/javase/8/docs/api/java/lang/System.html] class provides a means to access standard input through one of its fields, in[https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#in].
in field is a Stream (to be specific, its a InputStream), which is declared public static and final. Hence, one can use in directly without any initialization.
Typically, this InputStream corresponds to keyboard input or another input source specified by the host environment or user.
Conclusion
In this Java Tutorial, we have learned to use Scanner class to read a String from console input in Java.
How to take String Input in Java
There are various ways to take String input in Java. In this section, we are going to discuss how to take String input in Java. There are following ways to take String input in Java:
- By Using Java Scanner class
- By Using Java BufferedReader class
- By Using the Command Line argument
By Using Java Scanner class
The Scanner class is defined in java.util package that is used to take input from the user. The Scanner class provides the following two methods to take input from the user.
Let’s discuss each of the mentioned methods to take input from the user.
1. Scanner.nextLine() Method
The nextLine() method reads the input till the line gets terminated and shifts the cursor to the next line. The syntax of the nextLine() method is:
The method does not accept any parameter. It returns the string that was skipped. If the method finds no line to read, the method throws the NoSuchElementException.
FileName: StringInputExample.java
// importing the Scanner class import java.util.Scanner; public class StringInputExample < // main method public static void main(String argvs[]) < // To hold the string input by the user String str; // creating an object of the Scanner class Scanner scnr = new Scanner(System.in); System.out.print("Enter a string: "); // invoking the method nextLine() // to take input from the user str = scnr.nextLine(); // for new line System.out.println(); // displaying the entered string System.out.print("The string entered by the user is: " + str ); >>
Explanation: After displaying the message Enter a string, the cursor waits on the console for the user to enter string. The method nextLine() reads till the user hits enter and return the read stuff, which is captured by the variable str. The same read string is shown in the output. Note that hitting the enter button shows that the line has been terminated.
Scanner.next() Method
The next() method reads the input till the line gets terminated or white space is encountered. The main difference between the nextLine() and next() method is that the latter one terminates when white space is encountered, where the former one terminates only when enter is pressed. The syntax of the next() method is:
The read line is returned.
The method does not accept any parameter. It returns the string that was skipped. If the method finds no line to read, the method throws the NoSuchElementException.
FileName: StringInputExample1.java
// importing the Scanner class import java.util.Scanner; public class StringInputExample1 < // main method public static void main(String argvs[]) < // To hold the string input by the user String str; // Instantiating the Scanner class by creating its object Scanner scnnr = new Scanner(System.in); System.out.print("Enter a string: "); // invoking the method next() // to take input from the user str = scnnr.next(); // for new line System.out.println(); // displaying the entered string System.out.print("The string entered by the user is: " + str ); >>
Explanation: The user enters My Name is Khan. However, after the word “My” white space is encountered. Hence, the rest three words are not read, and the same can be confirmed by observing the output.
By using Java BufferedReader Class
Java BufferedReader Class is used to read the stream of characters. The class accepts an object of the InputStreamReader class. So, it is necessary to create a constructor of the InputStreamReader class and pass its object to the BufferedReader class as a parameter. The BufferedReader class has the readLine() method to take input from a user. The readLine() method reads one line at a time.
It returns the line entered by the user. It does not include any line-termination characters, or null if the end of the stream has been reached.
Let’s observe the following program to understand how the BufferedReader class is used for taking input from the user.
FileName: StringInputExample2.java
// Import statements import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class StringInputExample2 < // main method public static void main(String argvs[]) throws IOException < String str; // Creating an object of the InputStreamReader class InputStreamReader inputStrObj = new InputStreamReader(System.in); // Creating an object of the BufferedReader class BufferedReader bufrObj = new BufferedReader(inputStrObj); System.out.print("Enter a string: "); // invoking the method readLine() // to take input from the user str = bufrObj.readLine(); // for new line System.out.println(); // displaying the entered string System.out.print("The string entered by the user is: " + str ); >>
Explanation: In the constructor of the InputStreamReader class, System.in is passed. It is done because the input is being taken from the keyboard. With the help of InputStreamReader class, the BufferedReader class stores the input given by the user through keyboard.
By using the Command Line Argument
Command Line argument is present in the main method (String argvs[]). String argvs[] is a string array that accepts a line as an input. Let’s understand the usage of command-line argument with the help of the following Java program.
FileName: StringInputExample3.java
public class StringInputExample3 < // main method public static void main(String argvs[]) < // To store the elements of the String array argvs String str = ""; // Calculating the size of the String array int size = argvs.length; // loop for iterating over the elements of the String array argvs for(int i = 0; i < size; i++) < // Converting the String array into a string str = str + argvs[i] + " "; >// displaying the entered string System.out.print("The string entered by the user is: " + str ); > >
Explanation: The command line argument is put when the program is executed using the java command. The number of elements in the String array argvs[] is decided by the white spaces present in the input string. In the input string (“My name is Khan”), there are three white spaces present. Hence, there are four string elements present in the array argvs (“My”, “name”, “is”, “Khan”). The array argvs is then parsed using the for-loop, and elements of the array argvs are then concatenated to build the string again, as we have shown in the above output.
Read input string in java
- Introduction to Java
- The complete History of Java Programming Language
- C++ vs Java vs Python
- How to Download and Install Java for 64 bit machine?
- Setting up the environment in Java
- How to Download and Install Eclipse on Windows?
- JDK in Java
- How JVM Works – JVM Architecture?
- Differences between JDK, JRE and JVM
- Just In Time Compiler
- Difference between JIT and JVM in Java
- Difference between Byte Code and Machine Code
- How is Java platform independent?
- Decision Making in Java (if, if-else, switch, break, continue, jump)
- Java if statement with Examples
- Java if-else
- Java if-else-if ladder with Examples
- Loops in Java
- For Loop in Java
- Java while loop with Examples
- Java do-while loop with Examples
- For-each loop in Java
- Continue Statement in Java
- Break statement in Java
- Usage of Break keyword in Java
- return keyword in Java
- Object Oriented Programming (OOPs) Concept in Java
- Why Java is not a purely Object-Oriented Language?
- Classes and Objects in Java
- Naming Conventions in Java
- Java Methods
- Access Modifiers in Java
- Java Constructors
- Four Main Object Oriented Programming Concepts of Java
- Inheritance in Java
- Abstraction in Java
- Encapsulation in Java
- Polymorphism in Java
- Interfaces in Java
- ‘this’ reference in Java
Read input string in java
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter