Bird
Raised Fist0
Javaprogramming~5 mins

Using Scanner class in Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the Scanner class in Java?
The Scanner class is used to read input from various sources like keyboard input, files, or strings. It helps to get user input easily.
Click to reveal answer
beginner
How do you create a Scanner object to read input from the keyboard?
You create it by writing: Scanner scanner = new Scanner(System.in); This connects the Scanner to the keyboard input.
Click to reveal answer
beginner
Which method of Scanner reads a whole line of text including spaces?
The method nextLine() reads the entire line of input including spaces until the user presses Enter.
Click to reveal answer
intermediate
What happens if you use nextInt() and then nextLine() without extra handling?
After nextInt(), the newline character remains in the input buffer. So nextLine() reads that leftover newline, often causing unexpected behavior.
Click to reveal answer
intermediate
How do you properly close a Scanner object and why is it important?
You close it by calling scanner.close();. Closing frees system resources and avoids resource leaks, especially when reading from files.
Click to reveal answer
Which import statement is needed to use the Scanner class?
Aimport java.Scanner.util;
Bimport java.util.Scanner;
Cimport java.lang.Scanner;
Dimport java.io.Scanner;
What does scanner.nextInt() do?
AReads the entire line as a string
BReads the next word as a string
CCloses the scanner
DReads the next integer from input
How can you read a single word (no spaces) from user input?
AUse <code>next()</code>
BUse <code>nextLine()</code>
CUse <code>nextWord()</code>
DUse <code>read()</code>
What is a common problem when mixing nextInt() and nextLine()?
A<code>nextLine()</code> reads leftover newline causing skipped input
BThe program crashes immediately
CInput is converted to uppercase automatically
DScanner closes unexpectedly
Why should you close a Scanner reading from a file?
ATo clear the input buffer
BTo speed up the program
CTo free system resources and avoid file locks
DIt is not necessary to close Scanner
Explain how to use the Scanner class to read an integer and a full line of text from the keyboard.
Remember the leftover newline after reading numbers.
You got /4 concepts.
    Describe why and how to close a Scanner object in Java.
    Think about what happens if you leave files open.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of the Scanner class in Java?
      easy
      A. To write output to the console
      B. To handle file operations
      C. To create graphical user interfaces
      D. To read input from the user

      Solution

      1. Step 1: Understand Scanner's role

        The Scanner class is designed to read input from various sources, commonly from the user via the keyboard.
      2. Step 2: Differentiate from other classes

        Writing output is done by System.out, GUI creation uses other libraries, and file handling uses classes like FileReader.
      3. Final Answer:

        To read input from the user -> Option D
      4. Quick Check:

        Scanner reads input = B [OK]
      Hint: Scanner reads user input from keyboard easily [OK]
      Common Mistakes:
      • Confusing Scanner with output classes
      • Thinking Scanner creates GUI
      • Assuming Scanner handles files only
      2. Which of the following is the correct way to create a Scanner object to read from the keyboard?
      easy
      A. Scanner input = new Scanner(System.in);
      B. Scanner input = new Scanner(System.out);
      C. Scanner input = new Scanner(System.err);
      D. Scanner input = new Scanner(System.in.read());

      Solution

      1. Step 1: Identify correct Scanner constructor

        The Scanner constructor requires an InputStream to read input. System.in is the standard input stream (keyboard).
      2. Step 2: Check other options

        System.out and System.err are output streams, not input. System.in.read() returns an int, not an InputStream.
      3. Final Answer:

        Scanner input = new Scanner(System.in); -> Option A
      4. Quick Check:

        Use System.in for input Scanner [OK]
      Hint: Use System.in to read keyboard input with Scanner [OK]
      Common Mistakes:
      • Using System.out or System.err instead of System.in
      • Passing System.in.read() which is an int, not InputStream
      • Missing 'new' keyword
      3. What will be the output of the following code if the user inputs the number 25?
      import java.util.Scanner;
      public class Test {
        public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          int num = sc.nextInt();
          System.out.println(num * 2);
          sc.close();
        }
      }
      medium
      A. Error at runtime
      B. 25
      C. 50
      D. 0

      Solution

      1. Step 1: Understand input reading

        The program reads an integer from the user using nextInt(). User inputs 25, so num = 25.
      2. Step 2: Calculate output

        The program prints num * 2, which is 25 * 2 = 50.
      3. Final Answer:

        50 -> Option C
      4. Quick Check:

        Input 25 * 2 = 50 [OK]
      Hint: Multiply input number by 2 to get output [OK]
      Common Mistakes:
      • Confusing input with output
      • Forgetting to multiply by 2
      • Not closing Scanner (though not causing output error)
      4. Identify the error in the following code snippet:
      import java.util.Scanner;
      public class Demo {
        public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          System.out.println("Enter your name:");
          String name = sc.nextInt();
          System.out.println("Hello, " + name);
          sc.close();
        }
      }
      medium
      A. Not closing the Scanner
      B. Using nextInt() to read a String
      C. Missing import statement for Scanner
      D. Incorrect print statement syntax

      Solution

      1. Step 1: Check input method used

        The code uses nextInt() to read the user's name, which is a String, not an integer.
      2. Step 2: Identify correct method

        To read a String, nextLine() or next() should be used instead of nextInt().
      3. Final Answer:

        Using nextInt() to read a String -> Option B
      4. Quick Check:

        Use nextLine() for String input, not nextInt() [OK]
      Hint: Use nextLine() for strings, nextInt() for numbers [OK]
      Common Mistakes:
      • Using nextInt() for String input
      • Ignoring Scanner import
      • Not closing Scanner (not error here)
      • Misunderstanding print syntax
      5. You want to read a full line of text including spaces from the user after reading an integer using Scanner. Which sequence of method calls correctly handles this without skipping input?
      Scanner sc = new Scanner(System.in);
      int age = sc.nextInt();
      // What next?
      hard
      A. sc.nextLine(); String name = sc.nextLine();
      B. String name = sc.nextLine();
      C. sc.next(); String name = sc.nextLine();
      D. sc.nextInt(); String name = sc.nextLine();

      Solution

      1. Step 1: Understand Scanner behavior after nextInt()

        After nextInt(), the newline character remains in the input buffer, so a direct nextLine() reads that leftover newline.
      2. Step 2: Consume leftover newline before reading full line

        Calling sc.nextLine() once consumes the leftover newline, then the next nextLine() reads the actual full line input.
      3. Final Answer:

        sc.nextLine(); String name = sc.nextLine(); -> Option A
      4. Quick Check:

        Consume newline with nextLine() before reading full line [OK]
      Hint: Call nextLine() twice after nextInt() to read full line [OK]
      Common Mistakes:
      • Skipping the first nextLine() to consume newline
      • Using next() which reads only one word
      • Calling nextInt() again unnecessarily
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard