lect08 Strings and Input Failure Lect09 Files

Download Report

Transcript lect08 Strings and Input Failure Lect09 Files

Know for Quiz 2
• Everything through Exam 1
• Loops: while, for, do-while
• switch-case Statement
Strings Revisited
• String Is a Type (Object) in JAVA
• Automatically imported in java.lang
• May Initialize or Assign with Double Quoted
Values
• Can Add String to String with ‘+’ Operator
• CANNOT Compare using Equality Operators
(uses .equals() method instead)
• Methods Available to
–
–
–
–
Access single characters
Get length of String
Find a character or substring in String
Convert to lower or upper case
Objects
• Objects: Types of Variables Made from Built-In
Types
• Variables Can be Declared as an Object Type
• Objects Usually Have Functions Tied to Them
–
–
–
–
Member functions
Public functions
Interface functions
Methods
• String Is an Example of an Object Type
• StringVariable.length() Returns the
Number of Characters in the String
Methods
•
•
•
•
Also called Procedures, Functions
Have Parenthesis (e.g., method() )
May be Passed Arguments, or Parameters
Parameters are values to initialize new
variables in method
• Parameters used to pass information to
method
String Methods
• charAt(int index): return char at named index
(starting at 0)
• equals(String str): return boolean
• indexOf(char): return int of first occurrence of
char (index starts at 0)
• indexOf(String substr): return int of first
occurrence of String substr
• length(): return int length of String
• substring(int start, int end): return String
between start and end
• toLowerCase(), toUpperCase(): convert String
String myString = "My Dog Sandy",compareString;
System.out.println("The fourth character is: " +
myString.charAt(3));
if (myString.equals("my dog sandy"))
System.out.println("Strings are equal");
else
System.out.println("Strings are not equal");
compareString = myString + myString;
System.out.println("Added strings are: " +
compareString);
Output:
The fourth character is: D
Strings are not equal
Added strings are: My Dog SandyMy Dog Sandy
compareString = myString.toLowerCase();
System.out.println("String is: " + compareString);
System.out.println("Char S is at location: " +
myString.indexOf('S'));
System.out.println("substring og is at location: " +
myString.indexOf("og"));
System.out.println("Length of string is: " +
myString.length());
System.out.println("substring between location 3 and 5 is: " +
myString.substring(3,5));
Output:
String is: my dog sandy
Char S is at location: 7
Substring og is at location: 4
Length of string is: 12
Substring between location 3 and 5 is: Do
import java.util.Scanner;
public class MyProgram
{
public static void main( String [ ] args)
{
Scanner scan = new Scanner(System.in);
String lastname;
boolean instructor = false;
System.out.print(“Enter last name:”);
lastname = scan.next();
if(lastname.equals(“hanrath”))
instructor = true; // privileged
else
instructor = false; // not privileged
}
}
More on Input
•
•
•
•
•
Input Failure Common
*MUST* Be Part of Test Plan
Pages 310-313 in Anderson
Check Input for Type Desired
If not, Notify User, and Get Rid of Line
Input Failure Example
import java.util.*;
class InputFailureExample
{
public static void main(String[] args)
{
int numE;
String garbage;
Scanner scan = new Scanner(System.in);
System.out.print("Enter Integer: ");
while (!scan.hasNextInt())
{
garbage = scan.nextLine();
System.out.println("Please try again.");
System.out.print("Enter Integer: ");
}
numE = scan.nextInt();
System.out.println("You entered: " + numE);
}
Files
• Data in Main Memory is “volatile”
• File: Place for “permanent” data storage
• C: drive, A: drive, Flash drive, etc.
Main Memory
File
main()
int num;
Disk
string
firstname;
Input Files
import java.io.*;
import java.util.Scanner;
class FileInput
{
public static void main(String [ ] args) throws
IOException
{
File ifile = new File("data.txt");
Scanner scan = new Scanner(ifile);
while (scan.hasNextInt())
{
i = scan.nextInt();
}
}
Output File Streams
import java.io.*;
class FileOutput
{
public static void main(String [ ] args) throws
IOException
{
int i;
FileOutputStream ofile = new
FileOutputStream("data2.txt",false); //true:APP
PrintWriter pw = new PrintWriter(ofile);
for (i=0;i < 100; i = i + 2)
{
pw.println(i);
}
pw.close(); // Writes data to file on disk
}
import java.util.Scanner;
import java.io.*;
mydata.txt file
class FormatFileData
{
public static void main(String [ ] args)
throws IOException
{
int loops, integer, i;
float decimal;
String name;
5
8 9.3 Jon
6 14.335 Bill
0 35.67e9 Mary
-23 -4.55 Smith
-3 -4e3 xyz
File ifile = new File("mydata.txt");
Scanner scan = new Scanner(ifile);
loops = scan.nextInt();
for(i= 0 ; i < loops; i++)
{
integer = scan.nextInt();
decimal = scan.nextFloat();
name= scan.next();
System.out.print(integer + " ");
System.out.print(decimal + " ");
System.out.print(name + " ");
System.out.println();
}
Output:
8 9.3 Jon
6 14.335 Bill
0 3.567E10 Mary
-23 -4.55 Smith
-3 –4000.0 xyz
Know for Quiz 2
• Everything through Exam 1
• Loops: while, for, do-while
• switch-case Statement