Scanner class - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

Scanner class

Description:

... be interpreted as a byte value in the default radix using the nextByte() method. ... regular expressions. Read input in different radixes (radices or bases) ... – PowerPoint PPT presentation

Number of Views:245
Avg rating:3.0/5.0
Slides: 13
Provided by: kor3
Category:
Tags: class | radix | scanner

less

Transcript and Presenter's Notes

Title: Scanner class


1
Scanner class
  • Evan Korth
  • NYU

2
Java 1.5 (5.0)s Scanner class
  • Prior to Java 1.5 getting input from the console
    involved multiple steps.
  • Java 1.5 introduced the Scanner class which
    simplifies console input. It can also be used to
    read from files and Strings (among other
    sources).
  • It also can be used for powerful pattern matching
    we will not cover pattern matching in this
    class.
  • Scanner is in the Java.util package. So you must
    import java.util.Scanner

3
Creating Scanner objects
  • We can create a Scanner object by invoking
    several different constructors.
  • Scanner(File source)           Constructs a new
    Scanner that produces values scanned from the
    specified file.
  • Scanner(InputStream source)           Constructs
    a new Scanner that produces values scanned from
    the specified input stream.
  • Scanner(Readable source)           Constructs a
    new Scanner that produces values scanned from the
    specified source.
  • Scanner(String source)           Constructs a
    new Scanner that produces values scanned from the
    specified string.

I have included 4 of the 8 constructors provided
by the API Source java.sun.com
4
Terminology
  • Token In computing, a token is a categorized
    block of text, usually consisting of indivisible
    characters known as lexemes. A token can look
    like anything English, gibberish symbols,
    anything it just needs to be a useful part of
    the structured text.
  • Delimiter A delimiter is a character used to
    separate items of data stored on a computer. It
    is used to tell computers to finish processing
    one piece of data and move on to the next one.
    Most delimiters are characters that will not be
    used in the data, such as spaces or commas. It
    must also be consistent throughout the data.

Source wikipedia
5
Scanner class
  • The Scanner class basically parses input from the
    source into tokens by using delimiters to
    identify the token boundaries.
  • The default delimiter is whitespace
  • \t\n\x0B\f\r

6
Systems static fields
  • static PrintStream err           The
    "standard" error output stream.
  • static InputStream in           The "standard"
    input stream.
  • static PrintStream out           The
    "standard" output stream.
  • Remember You have been using System.out since
    your first Hello World program.
  • Now we see System.in is an InputStream

7
Scanner
  • Scanner will read a line of input from its source
    (our examples will be from System.in but we have
    already seen other sources are possible)
  • Example
  • Scanner sc new Scanner (System.in)
  • int i sc.nextInt()
  • System.out.println("You entered" i)
  • This example reads a single int from System.in
    and outputs it to System.out. It does not check
    that the user actually entered an int.

8
Next Methods
  • String next() Finds and returns the next
    complete token from this scanner. 
  • boolean nextBoolean() Scans the next token of
    the input into a boolean value and returns that
    value. 
  • byte nextByte()  Scans the next token of the
    input as a byte. 
  • double nextDouble()  Scans the next token of the
    input as a double. 
  • float nextFloat() Scans the next token of the
    input as a float. 
  • int nextInt() Scans the next token of the input
    as an int. 
  • String nextLine() Advances this scanner past the
    current line and returns the input that was
    skipped. 
  • long nextLong() Scans the next token of the
    input as a long. 
  • short nextShort() Scans the next token of the
    input as a short. 

9
InputMismatchExceptions
  • InputMismatchException This exception can be
    thrown if you try to get the next token using a
    next method that does not match the type of the
    token

10
hasNext methods
  • boolean hasNext() Returns true if this scanner
    has another token in its input. 
  • boolean hasNextBoolean() Returns true if the
    next token in this scanner's input can be
    interpreted as a boolean value using a case
    insensitive pattern created from the string
    "truefalse". 
  • boolean hasNextByte() Returns true if the next
    token in this scanner's input can be interpreted
    as a byte value in the default radix using the
    nextByte() method. 
  • boolean hasNextDouble() Returns true if the next
    token in this scanner's input can be interpreted
    as a double value using the nextDouble() method. 
  • boolean hasNextFloat() Returns true if the next
    token in this scanner's input can be interpreted
    as a float value using the nextFloat() method. 
  • boolean hasNextInt() Returns true if the next
    token in this scanner's input can be interpreted
    as an int value in the default radix using the
    nextInt() method. 
  • BooleanhasNextLine() Returns true if there is
    another line in the input of this scanner. 
  • boolean hasNextLong() Returns true if the next
    token in this scanner's input can be interpreted
    as a long value in the default radix using the
    nextLong() method. 
  • boolean hasNextShort() Returns true if the next
    token in this scanner's input can be interpreted
    as a short value in the default radix using the
    nextShort() method. 

11
Another example
  • Scanner sc new Scanner (System.in)
  • System.out.print ("Enter first int ")
  • while (sc.hasNextInt())
  • int i sc.nextInt()
  • System.out.println("You entered " i)
  • System.out.print ("Enter another int ")

12
Scanner
  • The Scanner class has more powerful abilities.
    For example, you can
  • Change the delimiters
  • Use regular expressions
  • Read input in different radixes (radices or bases)
Write a Comment
User Comments (0)
About PowerShow.com