Download presentation
Presentation is loading. Please wait.
1
Things to Remember
2
Try/catch blocks Don’t put it in a try block if you don’t need to.
If you do need a try block don’t put extra stuff in it. You probably don’t want to nest try catch blocks
3
How did this happen? How do I fix it?
filePlay.java:108: variable myFile might not have been initialized fileScan = new Scanner(myFile); ^ filePlay.java:136: variable intWriter might not have been initialized intWriter.println(intNumber + "\r\n"); ^ FilePlay.java:145: variable doubleWriter might not have been initialized doubleWriter.println(doubleNumber + "\r\n"); ^ FilePlay.java:154: variable stringWriter might not have been initialized stringWriter.println(lines + "\r\n"); ^ FilePlay.java:164: variable intWriter might not have been initialized intWriter.close(); ^ How did this happen? myFile, intWriter, doubleWriter and stringWriter were all instantiated in try blocks How do I fix it? Use null
4
Use Null myFile = null; intWriter = null; doubleWriter = null; stringWriter = null; Using null AVOIDS compiler error. Compiler knows that try may not succeed!
5
Comparing Strings public class TestString { public static void main (String [] args) { String myString1, myString2; myString1 = "apples"; myString2 = "avacado"; if (myString1 >= myString2) { println (myString1 + " comes after " + myString2); } else { println (myString2 + " comes after " + myString1); } }// END main } // END class
6
Oops TestString.java:10: operator >= cannot be applied to java.lang.String,java.lang.String if (myString1 >= myString2) ^
7
From API public int compareTo(String anotherString)
Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argument string. The result is a negative integer if this String object lexicographically precedes the argument string. The result is a positive integer if this String object lexicographically follows the argument string. The result is zero if the strings are equal; compareTo returns 0 exactly when the equals(Object) method would return true.
8
Lexicographic ordering
This is the definition of lexicographic ordering. If two strings are different, then either they have different characters at some index that is a valid index for both strings, or their lengths are different, or both. If they have different characters at one or more index positions, let k be the smallest such index; then the string whose character at position k has the smaller value, as determined by using the < operator, lexicographically precedes the other string. In this case, compareTo returns the difference of the two character values at position k in the two string -- that is, the value: this.charAt(k)-anotherString.charAt(k) If there is no index position at which they differ, then the shorter string lexicographically precedes the longer string. In this case, compareTo returns the difference of the lengths of the strings -- that is, the value: this.length()-anotherString.length()
9
The right way public class TestString2 { public static void main (String [] args) { String myString1, myString2; int number ; myString1 = "apples"; myString2 = "avacado"; number = myString1.compareTo(myString2); System.out.println (" number : " + number); if (number >0) System.out.println (myString1 + " comes after " + myString2); else if (number < 0) { System.out.println (myString2 + " comes after " + myString1); } else { System.out.println (myString2 + " is equal to " + myString1); } }// END main } // END class
10
PlayWithText revisited
PlayWithText.java
11
Careful import java.util.StringTokenizer; public class testST { public static void main (String [] args) { StringTokenizer myTokenizer; System.out.println (" using String Tokenizer - delimiters $%#,^& "); System.out.println (" - original String: a&abd^acd,ad#afd$"); myTokenizer = new StringTokenizer ("a&abd^acd,ad#afd$"); while (myTokenizer.hasMoreTokens()) { System.out.println( myTokenizer.nextToken("$%#,^&")); } } }
12
Re: FileIO lab // while fileScanner.hasNext() {
If (fileScanner.hasNextInt()) { … } else if (fileScanner.hasNextDouble() { … else { …
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.