Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/

Similar presentations


Presentation on theme: "CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/"— Presentation transcript:

1 CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/ Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus CSC 1051 M.A. Papalaskari, Villanova University Iterators and File Input

2 Outline of Chapter 5 Boolean Expressions The if Statement Comparing Data The while Statement Iterators The ArrayList Class Determining Event Sources Check Boxes and Radio Buttons CSC 1051 M.A. Papalaskari, Villanova University

3 Iterators Iterating: to process a collection of items, one at a time Typical iterator methods: –hasNext() - returns true if there is at least one more item to process –next() returns the next item CSC 1051 M.A. Papalaskari, Villanova University

4 Iterators Several classes in the Java standard class library are iterators The Scanner class is an iterator –the hasNext method returns true if there is more data to be scanned –the next method returns the next scanned token as a string The Scanner class also has variations on the hasNext method for specific data types (such as hasNextInt ) CSC 1051 M.A. Papalaskari, Villanova University

5 Example – What if input is not an int? System.out.print ("Enter the quantity: "); quantity = scan.nextInt(); CSC 1051 M.A. Papalaskari, Villanova University

6 Example – What if input is not an int? System.out.print ("Enter the quantity: "); // wrong kind of input? quantity = scan.nextInt(); CSC 1051 M.A. Papalaskari, Villanova University

7 Example – What if input is not an int? System.out.print ("Enter the quantity: "); while (!scan.hasNextInt()) // wrong kind of input? { // first scan the wrong input to get rid of it String rong = scan.next(); System.out.print(”Try again. Enter the quantity:"); } // now we know we have an integer, so scan it quantity = scan.nextInt(); CSC 1051 M.A. Papalaskari, Villanova University

8 Example – What if input is negative? do { System.out.print ("Enter the quantity: "); while (!scan.hasNextInt()) // wrong kind of input? { // first scan the wrong input to get rid of it String rong = scan.next(); System.out.print(”Try again. Enter the quantity:"); } // now we know we have an integer, so scan it quantity = scan.nextInt(); } while (quantity <0); // try again if quantity is negative CSC 1051 M.A. Papalaskari, Villanova University

9 Using Scanner to read from a file Create a “file object” File myFile = new File("sample.inp"); Create a Scanner to read from file object Scanner fileScan = new Scanner (myFile); Use next() to obtain next token Use nextLine() to obtain entire line of text (until \n) Use hasNext() to test whether you are done CSC 1051 M.A. Papalaskari, Villanova University

10 File Input Example: FileInput.javaFileInput.java public class FileInput { //---------------------------------------------------------------- // Reads text from a file and prints it in uppercase. //---------------------------------------------------------------- public static void main (String[] args) throws IOException { String line; File myFile = new File("sample.inp"); Scanner fileScan = new Scanner (myFile)); // Read and process each line of the file while (fileScan.hasNext()) { line = fileScan.nextLine(); System.out.println (line.toUpperCase()); } } } CSC 1051 M.A. Papalaskari, Villanova University

11 File Input Example public class FileInput { //---------------------------------------------------------------- // Reads text from a file and prints it in uppercase. //---------------------------------------------------------------- public static void main (String[] args) throws IOException { String line; File myFile = new File("sample.inp"); Scanner fileScan = new Scanner (myFile)); // Read and process each line of the file while (fileScan.hasNext()) { line = fileScan.nextLine(); System.out.println (line.toUpperCase()); } } } CSC 1051 M.A. Papalaskari, Villanova University Run Output COMPUTERS ARE USELESS. THEY CAN ONLY GIVE YOU ANSWERS. PABLO PICASSO (1881 - 1973) sample.inp Computers are useless. They can only give you answers. Pablo Picasso (1881 - 1973)

12 Iterators The fact that a Scanner is an iterator is particularly helpful when reading input from a file Suppose we wanted to read and process a list of URLs stored in a file One scanner can be set up to read each line of the input until the end of the file is encountered Another scanner can be set up for each URL to process each part of the path See URLDissector.javaURLDissector.java CSC 1051 M.A. Papalaskari, Villanova University

13 //******************************************************************** // URLDissector.java Author: Lewis/Loftus // // Demonstrates the use of Scanner to read file input and parse it // using alternative delimiters. //******************************************************************** import java.util.Scanner; import java.io.*; public class URLDissector { //----------------------------------------------------------------- // Reads urls from a file and prints their path components. //----------------------------------------------------------------- public static void main (String[] args) throws IOException { String url; Scanner fileScan, urlScan; fileScan = new Scanner (new File("urls.inp"));urls.inp continue

14 CSC 1051 M.A. Papalaskari, Villanova University continue // Read and process each line of the file while (fileScan.hasNext()) { url = fileScan.nextLine(); System.out.println ("URL: " + url); urlScan = new Scanner (url); urlScan.useDelimiter("/"); // Print each part of the url while (urlScan.hasNext()) System.out.println (" " + urlScan.next()); System.out.println(); }

15 CSC 1051 M.A. Papalaskari, Villanova University continue // Read and process each line of the file while (fileScan.hasNext()) { url = fileScan.nextLine(); System.out.println ("URL: " + url); urlScan = new Scanner (url); urlScan.useDelimiter("/"); // Print each part of the url while (urlScan.hasNext()) System.out.println (" " + urlScan.next()); System.out.println(); } Sample Run URL: www.google.com www.google.com URL: www.linux.org/info/gnu.html www.linux.org info gnu.html URL: thelyric.com/calendar/ thelyric.com calendar URL: www.cs.vt.edu/undergraduate/about www.cs.vt.edu undergraduate about URL: youtube.com/watch?v=EHCRimwRGLs youtube.com watch?v=EHCRimwRGLs

16 Homework Review Section 5.5 –Always do all self-review exercises when you review CSC 1051 M.A. Papalaskari, Villanova University Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus


Download ppt "CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/"

Similar presentations


Ads by Google