Scanner

advertisement
Scanner
Pepper
With credits to Dr. Siegfried
The Scanner Class
• Most programs will need some form of
input.
• At the beginning, all of our input will come
from the keyboard.
• Scanner is a class that knows how to read
information from the terminal window.
Add knowledge to your program
• Bring that Scanner blueprint into your
program with an import statement:
import java.util.Scanner;
Our Scanner Guy
• We need to create a Scanner guy (object
instance) using the Scanner blueprint
(class) and hold him in a Scanner box
(variable)
Scanner keyb = new Scanner(System.in);
KEYB
Your program talks to user
• System.out.println talks to user, but cannot
get response
System.out.println(“enter something”);
Reading from the keyboard
• Once we create a Scanner guy (object
instance), we can ask our Scanner
variable (we called it keyb) to read an
integer from the terminal window:
variable = keyb.nextInt();
Ask before you read
• Scanner takes in typing, but does not ask
for it. You do that:
System.out.println
("What is the first value\t?");
int value1 = keyb.nextInt();
System.out.println
("What is the second value\t?");
int value2 = keyb.nextInt();
Now, your variables are inside your
program just as if you had set them to a
specific number
value1
value 2
Other things scanner can read
• You can read:
– nextInt()
– nextLong()
– nextByte()
– nextDouble()
– next() – up to next whitespace (delimiter)
– nextLine() – up to “\n” (end of line)
– useDelimiter()
• Reading pointer
– nextLine() moves your reading pointer down a
line
Example – A program to convert
pounds to kilograms
• Our program will convert a weight
expressed in pounds into kilograms.
– Our input is the weight in pounds.
– Our output is the weight in kilograms
– We also know that
Kilograms = Pounds / 2.2
Examples for pounds to kilograms
Weight in pounds (int)
kilograms
0
-22
220
225
Weight in
0
-10
100
102.27
Pounds to Kilograms Program (continued)
•
Our program must:
1. Ask the user for the weight in pounds
2. Calculate the weight in kilograms
3. Print the weight in kilograms
Pounds to Kilograms Program (continued)
•
Our program must:
1. Get the weight in pounds
2. Calculate the weight in kilograms
3. Print the weight in kilograms
1.1
1.2
Prompt the user for the weight in pounds
Read the pounds
Pounds to Kilograms Program (continued)
•
Our program must:
1.1 Prompt the user for the weight in
pounds
1.2 Read the pounds
2. Calculate the weight in kilograms
3. Print the weight in kilograms
System.out.println
("What is the weight in pounds?");
double lbs = keyb.nextInt();
Pounds to Kilograms Program (continued)
System.out.println
("What is the weight in pounds?");
double lbs = keyb.nextInt();
2. Calculate the weight in kilograms
3. Print the weight in kilograms
double kg = lbs / 2.2;
Pounds to Kilograms Program (continued)
System.out.println
("What is the weight in pounds?");
double lbs = keyb.nextInt();
double kg = lbs / 2.2;
3. Print the weight in kilograms
System.out.println("The weight is " + kg
+ " kilograms");
import java.util.Scanner;
public class ConvertPounds
{
// Convert pounds to kilograms
// Input - weight in pounds
// Output - weight in kilograms
public static void main(String[] args) {
Scanner keyb = new Scanner(System.in);
// Get the weight in pounds
System.out.println
("What is the weight in pounds?");
double lbs = keyb.nextInt();
// Calculate and display the weight in
// kilograms
double kg = lbs / 2.2;
System.out.println("The weight is " + kg
+ " kilograms");
}
}
Another Example – The Area of A Rectangle
• Our program will calculate the area of a
rectangle.
– Our input is the length and width.
– Our output is the area.
– We also know that
Area = Length * Width
0=0*0
100 = 20 * 5
300 = 100 * 3
Our Program’s Steps
1. Find the length and width
2. Calculate the area
3. Print the area
Our Program’s Steps
(continued)
1. Find the length and width
2. Calculate the area
3. Print the area
1.1 Find the length
1.2 Find the width
Our Program’s Steps
(continued)
1.1 Find the length
1.2 Find the width
2. Calculate the area
3. Print the area
1.1.1 Prompt the user for the length
1.1.2 Read the length
1.2.1 Prompt the user for the width
1.1.2 Read the width
Our Program’s Steps (continued)
1.1.1 Prompt the user for the length
1.1.2 Read the length
1.2.1 Prompt the user for the width
1.1.2 Read the width
2. Calculate the area
3. Print the area
System.out.println("Enter the length?");
double length = keyb.nextDouble();
System.out.println("Enter the width?");
double width = keyb.nextDouble();
Our Program’s Steps (continued)
System.out.println("Enter the length?");
double length = keyb.nextDouble();
System.out.println("Enter the width?");
double width = keyb.nextDouble();
2. Calculate the area
3. Print the area
double area = length * width;
Our Program’s Steps (continued)
System.out.println("Enter the length?");
double length = keyb.nextDouble();
System.out.println("Enter the width?");
double width = keyb.nextDouble();
double area = length * width;
3. Print the area
System.out.println("The area is " + area);
import java.util.Scanner;
public class CalculateArea {
// Calculates the area of a rectangle
// Inputs - The length and width of the rectangle
// Output - The area of the rectangle
public static void main(String[] args) {
Scanner keyb = new Scanner(System.in);
// Print an explanatory message for the user
System.out.println
("Given the width and length of a rectangle");
System.out.println
("this program calculates its area." );
// Get the inputs
System.out.println("Enter the length?");
double length = keyb.nextDouble();
System.out.println("Enter the width?");
double width = keyb.nextDouble();
// Calculate and display the area
double area = length * width;
System.out.println("The area is " + area);
}
}
Try Scanner Play
• Tell the user to “Type an integer and then
a word, and press Enter”
• Print it back to them with “You typed <the
first number they typed> and <the word
they typed>.”
• Then, ask for a whole line and print it
back.
• See that you need to be careful with the
Enter keystroke. (Capture it with
keyb.nextLine.)
Scanner Play solution
import java.util.Scanner;
public class ScannerPlay
{
public static void main(String[] args)
{
Scanner keyb = new Scanner(System.in);
System.out.println
("Type an integer and then a word, and press Enter");
int number1 = keyb.nextInt();
String word1 = keyb.next();
System.out.println("You typed " + number1 + " and " + word1 + ".");
System.out.println("Type something else and Enter");
keyb.nextLine(); // skip a line
String line1 = keyb.nextLine();
System.out.println("You typed " + line1);
}
}
Download