Transcript String

CIS 260: App Dev I
Objects and Reference Variables

Predefined Java classes you have used:
 String—for defining and manipulating strings
 Integer—for defining and manipulating integers
 Double—for defining and manipulating _________.

Primitive integers and Integer objects
 int aNumber = 78;
• aNumber is a variable of the __________ data type int
• aNumber is a variable (a memory location, say, 2500) that
actually holds the value 78
 Integer aNumber = new Integer(78);
• aNumber is a __________ variable (a memory location) that
stores the memory location where the value 78 is stored
• aNumber is called an _________ of the Integer class or
2
an Integer _________
The Operator new


Integer aNumber = new Integer(78);
The operator _____ does the following:
 Assigns the memory location for the integer 78
 Stores 78 in that memory location
 Stores the address of that memory location in the
reference variable (object) called aNumber



aNumber is an _______ of the Integer class
Integer aNumber = new Integer(50);
creates a new object called aNumber, but
aNumber points to a different address
Java’s automatic _______ collector will remove
the 78 eventually, or you can use
3
System.gc();
Predefined Classes and Methods




A ________ is a set of instructions designed to
accomplish a specific task.
The method main() runs automatically.
Java has many _________ that contain classes
that contain methods (all are predefined).
How to call the pow() method in the class
Math:
 result = Math.pow(2,3);
 // result is 8 = 2 to the 3rd power
 // the 2 and 3 are called arguments

____ notation is used to access class members.
4
The class String


In Java, a string is not a variable, but an _____.
The following two statements are equivalent:
 String name = “Lisa Johnson”;
 name = new String(“Lisa Johnson”);

name is actually a reference variable that
contains the address of the String ________.

A string contains ___ or more characters
enclosed in double quotes.
The ________ of the first character in a string is
0, of the second character is 1, and so on.

5
Methods in the class String


The method substring() is a member of the
class String.
Using String name = “Lisa Johnson”; :
 name.substring(0,4) yields _______
 name.substring(5,12) yields “Johnson”
 name.indexOf(‘J’) yields ___
 name.charAt(4) yields ‘ ’
 name.equals(“Lisa Johnson”) yields true
 name.equals(“Luke Johnson”) yields ______
 name.length() yields ____
 name.replace('i','e') yields “Lesa
Johnson”

The String object name has access to the
String methods using the ____ operator.
6
Input/Output


You can input data into a Java program using a
simple GUI (____________ user interface).
The class JOptionPane has the method
showInputDialog() and is used as follows:
name = JOptionPane.showInputDialog(“Enter your
name”);

A message can be displayed to the user using
the showMessageDialog() method:
JOptionPane.showMessageDialog(null,“Hello
World!”,”Greetings”,JOptionPane.PLAIN_MESSAGE);
7
More Input/Output

The class JOptionPane is in the package
javax.swing, which must be imported.

A program that uses a GUI must end with the
statement System.exit(0) to terminate the
GUI “________”.
It is better to create an output string within the
program, then use that string in the GUI.

JOptionPane.showMessageDialog(null, outputString,
guiTitle, JOptionPane.INFORMATION_MESSAGE);
8
Tokenizing a String

A string can be broken up into parts called
________ using the class StringTokenizer,
which is in the package java.util.

Example:
StringTokenizer tokenizer = new
StringTokenizer(“Richard Johnson”);
String firstName = tokenizer.nextToken();
String lastName = tokenizer.nextToken();

The above example will store “Richard” in
firstName and “Johnson” in lastName.
9
Formatting Output


The class DecimalFormat can format
numbers to a specific number of decimal places.
The following statement creates the
DecimalFormat object:
DecimalFormat twoDecimal = new
DecimalFormat("0.00");

The following statement uses the
DecimalFormat object:
formattedNumber = twoDecimal.format(number);

If number contains 38.987 then
formattedNumber contains ________
(rounding is performed)
10
File Input/Output




It is often more efficient to get input from and
send output to a file on a disk (instead of using
the keyboard or ________).
A file is an area in __________ storage that
holds information.
To input data from a file use the class
FileReader.
To output data to a file use the classes
FileWriter and PrintWriter (in the
package _________).
11
More on File Input

This statement creates a FileReader object
associated with a specific file on a disk, then
reads an entire line of data from the file, storing
the line of data in a BufferedReader object.
BufferedReader inFile = new BufferedReader(new
FileReader(“a:\\prog.dat”));

If the line contains different data segments, use
StringTokenizer to break it up and store
data in __________.
12
Writing to a File


First, create a __________ object and associate
it with the destination file.
Then, create a ___________ object using the
FileWriter object.
 This can be done in a single statement:
PrintWriter outFile = new PrintWriter(new
FileWriter(“a:\\prog.out”);
 You write data to the file with a statement
outFile.println(“The paycheck is: $” + pay);



like
You _______ the file with outFile.close();
If the output file doesn’t exist, Java will create it.
13
If it does exist, Java will overwrite it.
/*
* Chapter3Examples.java
* Created by Richard Johnson
* 9/15/04
* Demonstrates topics in Chapter 3 of Malik and Nair
*/
import
import
import
import
javax.swing.*; // for GUIs
java.util.*; // for tokenizing
java.text.*; // for formatting
java.io.*; // for input/output
public class Chapter3Examples
{
public static void main (String[] args) throws IOException, FileNotFoundException
{
System.out.println("Welcome to the Chapter 3 Examples\n\n");
// demonstrate simple GUIs
String name = JOptionPane.showInputDialog("Enter your first and last name only:");
String message = "Thank you " + name;
JOptionPane.showMessageDialog(null,message,"Greetings",JOptionPane.PLAIN_MESSAGE);
// demonstrate tokenizing
StringTokenizer tokenizer = new StringTokenizer(name);
String firstName = tokenizer.nextToken(); // get first token in string
String lastName = tokenizer.nextToken(); // get next token in string
System.out.println("Your name is: " + firstName + " " + lastName);
// demonstrate formatting
double firstNumber = 38.9023;
DecimalFormat twoDecimal = new DecimalFormat("0.00");
System.out.println(twoDecimal.format("$" + firstNumber));
// demonstrate file
PrintWriter outFile
outFile.println("My
outFile.close(); //
output
= new PrintWriter(new FileWriter("prog.out"));
name is: " + lastName + ", " + firstName);
close the file
// demonstrate file input
BufferedReader inFile = new BufferedReader(new FileReader("prog.out"));
StringTokenizer aTokenizer = new StringTokenizer(inFile.readLine());
String junk1 = aTokenizer.nextToken(); // gets the text 'My'
String junk2 = aTokenizer.nextToken(); // gets the text 'name'
String junk3 = aTokenizer.nextToken(); // gets the text 'is:'
String nameLastWithComma = aTokenizer.nextToken(); // gets name w/ comma
String nameLast = nameLastWithComma.substring(0,
nameLastWithComma.indexOf(",")); // gets name without comma
String nameFirst = aTokenizer.nextToken();
System.out.println("My name is: " + nameFirst + " " + nameLast);
System.out.println("\nEnd of program\n");
System.exit(0); // terminate GUI thread
}
}