Java Scanner String Input Example
Multiple String Input In Java Using Scanner [With Coding Example]
Introduction
In java.util package, the scanner is one of the classes that help in collecting multiple inputs of the primitive types such as double, integer, strings, etc. Though it is not an efficient way of reading inputs in a Java program where time acts as a constraint, it is undoubtedly one of the easiest ways to collect multiple inputs from the user. In this blog, you will learn how to collect multiple string input from the user in a Java program using the scanner class.
Methods for Taking Multiple Inputs Using Scanner
You must import java.util package in a program before using the Scanner class. The following table lists the methods used to take multiple inputs of different types from the user in a Java program.
Method | Inputs |
nextInt() | Integer |
nextFloat() | Float |
nextDouble() | Double |
nextLong() | Long |
nextShort() | Short |
next() | Single-word |
nextLine() | Line of Strings |
nextBoolean() | Boolean |
Using Java nextLine() Method
The java.util.Scanner.nextLine() method returns the line that was skipped by advancing the scanner past the current line. If a line separator is given at the end of the current line, this method excludes it and returns the string's rest from the current line. The scanner is set at the next line beginning and reads the entire string, including the words' white spaces.
The syntax for nextLine() method is as follows:
Public String nextLine()
This method throws the following two exceptions:
- NoSuchElementException – If the string is empty or no line is found.
- IllegalStateException – If the scanner is closed.
Example
The following example demonstrates how java.util.Scanner.nextLine() method collects multiple inputs from the user.
public class SacnnerDemoMultipleString
{
public static void main(String[] args)
{
Scanner demo = new Scanner(System.in);
System.out.print("Please enter multiple inputs you want to print: ");
//takes an integer input
String[] string = new String [demo.nextInt()];
//consuming the <enter> from input above
demo.nextLine();
for (int i = 0; i < string.length; i++)
{
string[i] = demo.nextLine();
}
System.out.println("\nYou have entered the following input: ");
//for-each loop to print the string
for(String str: string)
{
System.out.println(str);
// close the scanner
scanner.close();
}
}
}
The above program will print the following output
Misha
Harry
Robert
Harvey
Jill
Rachel
Jennifer
You have entered the following input:
Misha
Harry
Robert
Harvey
Jill
Rachel
Jennifer
Using Java nextInt() Method
The java.util.Scanner.nextInt() method scans the input provided by the user as an integer. If an integer is found, then the scanner advances past the matched input.
The syntax for nextInt() method is as follows:
Public int nextInt()
This method throws the following three exceptions:
- InputMismatchException – If the next token does not match the integer regular expression or if the next token is out of the range.
- NoSuchElementException – If the input is exhausted.
- IllegalStateException – If the scanner is closed.
Example
The following example demonstrates how java.util.Scanner.nextInt() method collects multiple inputs from the user.
// class and print their mean.
import java.util.Scanner;
public class ScannerDemoInteger
{
public static void main(String[] args)
{
Scanner demo = new Scanner(System.in);
// Initialize sum and count of input elements
int sum = 0, count = 0;
// Check if an integer value is present
while (demo.hasNextInt())
{
// Scan an integer value
int num = demo.nextInt();
sum += num;
count++;
}
int mean = sum / count;
System.out.println("Mean: " + mean);
}
}
The above program is fed with the following input:
223
238
892
99
500
728
The above program will print the following output:
Also Read: Java MVC Project
Using Java nextDouble() Method
The java.util.Scanner.nextDouble() method scans the input provided by the user as a double. If a float regular expression is found, then the scanner advances past the matched input.
The syntax for nextInt() method is as follows:
public double nextDouble()
This method throws the following three exceptions:
- InputMismatchException – If the next token does not match the float regular expression or if the next token is out of the range.
- NoSuchElementException – If the input is exhausted.
- IllegalStateException – If the scanner is closed.
Example
The example demonstrates how java.util.Scanner.nextDouble() method collects multiple inputs from the user.
import java.util.Scanner;
public class ScannerDoubleRegularExpression {
public static void main(String[] args) {
String new = "Good Morning! 3 + 3.0 = 6 true";
// write a new scanner object with the specified String Object
Scanner demo = new Scanner(s);
// use US locale to be able to identify doubles in the string
demo.useLocale(Locale.US);
// search the next double token and print it
while (demo.hasNext()) {
// if the next is a double, print found and the float regular expression
if (demo.hasNextDouble()) {
System.out.println("Found :" + demo.nextDouble());
}
// if a double regular expression is not found, print "Not Found" and the token
System.out.println("Not Found :" + demo.next());
}
// close the scanner
scanner.close();
}
}
The above program will result in the following output:
Not Found: Morning!
Found: 3.0
Not Found: +
Found: 3.0
Not Found: =
Found: 6.0
Not Found: true
Learn Software Development Courses online from the World's top Universities. Earn Executive PG Programs, Advanced Certificate Programs, or Masters Programs to fast-track your career.
Conclusion
For example, the codes given in this blog are the purpose and can be modified as per an individual's needs. If you're interested to learn more about Java & full-stack software development, check out upGrad & IIIT-B's Executive PG Program in Full-stack Software Development which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects, and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.
What is Scanner class in Java?
The Scanner class lets you read values from the keyboard without using Java's console input. Java's console input is slow, and so is its redirection. Scanner is faster and more convenient, so Scanner should be used in place of Java's console input. Scanner uses Java's regular input stream, so it can be chained with other parsers. Scanner is also easier to use than Java's console input. Scanner has three main subclasses, namely, BufferedReader, InputStreamReader, and FileReader. The most general one is BufferedReader. BufferedReader can read anything that can be read by InputStreamReader, and it has one big advantage: buffer. The buffer can hold one line at a time. An input stream has no buffer at all: when you call next(), it returns the value. This means you have to collect the values before you can do anything with them. Scanner does it for you.
What is a string builder in Java?
A string builder is a new type of class to create a string. The string builder class is introduced in Java from 1.3 version. It allows you to create a string by concatenating a number of strings and will automatically resize itself as you add more strings to it. Compared to string concatenation, using string builder is faster and flexible, though it's less readable. StringBuilder objects are objects that are used to create String values. StringBuilder objects have a number of methods.
What is an InputStreamReader in Java?
InputStreamReader reads a stream of characters from an input stream and decodes them into a specified character encoding. It provides an easy way to convert character streams from one encoding to another. InputStreamReader reads bytes from the underlying stream and converts them into characters using the specified charset encoding. It is a class that is used to convert byte stream data into character stream data. Byte stream represent binary data and character stream represent text.
Want to share this article?
Prepare for a Career of the Future
davalosliturmlime.blogspot.com
Source: https://www.upgrad.com/blog/multiple-string-input-in-java-using-scanner/
0 Response to "Java Scanner String Input Example"
Post a Comment