Java get input string

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 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:

  1. By Using Java Scanner class
  2. By Using Java BufferedReader class
  3. 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 ); >>

String Input in Java 1

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 ); >>

String Input in Java 1

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 ); >>

String Input in Java 1

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 ); > >

String Input in Java 1

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.

Источник

String Input in Java

Java Course - Mastering the Fundamentals

With the help of the I/O package, Java has several Streams that help the user in performing all the input-output activities. These streams support all types of objects, data types, characters, and so on.

For taking string input we can make use of various methods like using Scanner class, BufferedReader class, and Command Line argument.

How to Take String Input in Java ?

Input and Output are one of the most important parts of learning any programming language. Java has a various number of I/O Streams that help the user in performing all the input-output activities, taking string input from the user can be done using these I/O streams. Further in this article, we will discuss all those approaches that are needed to be followed for taking string input.

Method — 1 : By Using Java Scanner Class

The Scanner class is provided by the java.util package and is used to take input from the user. The Scanner class has the following methods that help us to take input from the user :

For using the Scanner class, we have to import the Scanner Class in our code by using the following syntax :

Now let’s see how these methods help us to take string input in Java.

Scanner.nextLine() Method

The Scanner class’s nextLine() method is used to take string input from the end user. nextLine() method is contain java.util.Scanner class. This method reads text until it reaches the end of the line. It moves the cursor to the next line after reading the line.

The skipped line is returned by the nextLine() method. It doesn’t take any parameters. When the nextLine() method can’t find a line, it throws a NoSuchElementException. If the scanner class is closed, it also throws an IllegalStateException.

Now let’s take a look at an example of the nextLine() method :

In this example, we are importing the scanner class using the nextLine() method followed by System.in standard input stream

In this example, we are showing the case when this method throws NoSuchElementException.

We haven’t provided any std input to our java program, so it will throw NoSuchElementException.

Scanner.next() Method

The Scanner class’s next() method in Java is used to read the input before the whitespace is detected. next() method is unable to read two words separated by whitespace. After reading the input, it keeps the pointer in the same line.

Next complete string value is returned by next() method. It doesn’t take any parameters. When the next() method can’t find string value, it throws a NoSuchElementException. If the scanner class is closed, it also throws an IllegalStateException.

Now let’s take a look at an example of the next() method :

In this example, we are importing the scanner class for using the next() method followed by System.in standard input stream

In this example, we are showing the case when this method throws NoSuchElementException.

We haven’t provided any std input to our java program, so it will throw NoSuchElementException.

Difference Between Scanner.nextLine() and Scanner.next()

The key difference between the nextLine() and next() method is that the next() method gets terminated when whitespace is encountered, whereas the nextLine() method terminates only when enter is pressed and next line is reached.

Method — 2 : By Using Java BufferedReader Class

The BufferedReader class is provided by the java.io package and is used to read the stream of characters, BufferedReader accepts the InputStreamReader class as the parameter for its execution.

Some basic differences between Scanner class and BufferedReader class :

  • BufferedReader is synchronous while the Scanner is not. So, BufferedReader should be used if we are working with multiple threads.
  • BufferedReader has a significantly larger buffer memory than Scanner.
  • BufferedReader is slightly faster than the scanner since the scanner parses the input data, whereas BufferedReader reads a sequence of letters.

BufferedReader class has the readLine() method for taking string input from the user. readLine() method reads a single line at a time.

The readline() method returns the line that the user has entered. Now let’s take a look at an example of how the BufferedReader class is used for taking string input.

In this example, we are using BufferedReader with InputStreamReader for the standard IO stream, also BufferedReader must be used inside the try-catch block in case of exceptions.

Method — 3 : By Using the Command Line Arguments

In Java programs, we can pass the command line argument in the main method of the driver program.

String args[] is a string array that takes a line as an input. So, we can pass a string as an argument to the main method and can fetch its value and use it.

In this example, we have used the command line argument using the args[] array and used its value for displaying the string output.

Command Line Argument :

Conclusion

  • Java has several Streams that help the user in performing all the input-output activities.
  • String input can be achieved using Scanner class, BufferedReader class, and Command-line Arguments
  • The Scanner class is provided by java.util package and uses the following methods for string input :
    • Scanner.nextLine() :
      This method reads text until it reaches the end of the line.
    • Scanner.next() :
      This method reads the input before the whitespace is detected.

    Источник

    Java get input string

    • 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

    Источник

Оцените статью