©2004 brooks/cole chapter 7 strings and characters
TRANSCRIPT
![Page 1: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/1.jpg)
©2004 Brooks/Cole
Chapter 7
Strings and Characters
![Page 2: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/2.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
A String is a Sequence of Characters
• Literal strings are enclosed in double quotes – "hello"
• Strings are objects that belong to the String class
• Each character in the string has an index– first character has index 0
![Page 3: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/3.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Strings are Objects
• Variables which refer to Strings are reference variables– Variable memory stores the address of the
String object– Data (character sequence) is stored in a
different part of memory
![Page 4: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/4.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Creating Strings
• Declaring a String Variable String message;
• A literal string is created automatically.– Assignment stores the address in a variable.message = "hello";
• A String object can be created with new• This is known as instantiationmessage = new String("hello");• The String class has several constructors
(overloaded)
![Page 5: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/5.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
String Creation
String string1 = new String("Hello");
String string2 = new String("Hello there");
![Page 6: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/6.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
String Concatenation
• We can join two strings into a larger string using the + operatorString s1 = "Hot ";
String s2 = "Dog";
String s3 = s1 + s2;
![Page 7: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/7.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Concatenation creates a new String
String message = "Start";
message = message + "le";
![Page 8: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/8.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Strings are immutable
• Once created, a String object cannot be modified– String is created with a certain amount of
memory
• All the String methods that appear to modify a String actually return a new String
• There is a StringBuffer class that is mutable
![Page 9: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/9.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
String I/O
• We have used print and println to output Strings to the console
• We use the next and nextLine methods of the Scanner class to read String data from the keyboard
• JOptionPane.showInputDialog also reads String data
![Page 10: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/10.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
String Methods
• length() returns the number of characters in the string
• concat() can be used (like +) to concatenate strings
• equals() can be used to check if two strings contain the same sequence of characters
• compareTo() indicates whether one string comes before another
![Page 11: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/11.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Comparing Strings for equality
• The == operator checks whether the same value is stored in two different variables.
• For reference variables, what is compared is two addresses
• To compare whether two strings have the same sequence of characters stored in them, use the equals method.
![Page 12: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/12.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Comparing with ==
• s1==s2 is true• s1==s3 is false• s1==s4 is true• s2==s3 is false• s2==s4 is true• s2==s4 is false
String s1, s2, s3, s4;
s1 = "java";
s2 = "java";
s3 = new String("java");
s4 = s1;
![Page 13: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/13.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Different Reference Variables Can Reference Equal Strings
• Comparisonss1==s2 is false
s1.equals(s2) is true
String s1 = new String( "Help");
String s2 = new String( "Help");
![Page 14: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/14.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Comparing Strings with compareTo
• compareTo does a character by character comparison– uses unicode values to
determine order– case-sensitive
• s1.CompareTo(s2) is– negative if s1 comes before
s2– 0 if s1 and s2 have the same
sequence of characters– positive if s1 comes after s2
• Examples"Hello" comes after "Goodbye"
"hello" comes after "Hello"
"SMITH" comes after "JONES"
"123" comes after "1227"
"Beehive" comes before "Behop"
"123" comes before "abc"
![Page 15: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/15.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
More String methods
• indexOf( char ch), indexOf( String str) return the position of a character or sequence of characters in the String– Returns -1 if absent
– Overloaded versions of indexOf and lastIndexOf
• toUpperCase(), toLowerCase() return strings with all letters of the same case
![Page 16: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/16.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Substrings
• substring( int start, int next) returns a String containing the characters with indexes start through next-1 in the original String– "appaloosa".substring( 2, 5) ---> "pal"– "Helpless".substring( 0, 4) ---> "Help"– "Helpless".substring( 4) ---> "less"
![Page 17: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/17.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Character Class
• Like the other primitive types, there is a wrapper class, Character, for the char type– Can be used to create objects with a single char
value for data – Has class methods useful for handling character
data
![Page 18: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/18.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Character Methods
• Boolean methods that test whether a character belongs to a particular group of characters– isDigit, isLetter, isWhitespace, isUpperCase,
isLowerCase
• Methods to convert characters from one case to another– toUpperCase, toLowerCase
![Page 19: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/19.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Converting Primitive Values to Strings
• String class has valueOf method which is overloaded to work for any primitive type– String valueOf( boolean b)– String valueOf( int I)– String valueOf( double d)– String valueOf( char c)
• Wrapper classes have a static toString method– String toString( boolean b) in the
Boolean class for example
![Page 20: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/20.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Converting Strings to Primitive Values
• Wrapper class have methods to convert a String to a primitive value– Integer.parseInt( String intString)– Integer.valueOf( String intString)
• If the string is not appropriate for the primitive type, an error will occur
![Page 21: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/21.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
StringBuffer Class
• A StringBuffer is very similar to a String except that a StringBuffer object can be modified
• This means you can add, insert or replace characters within the StringBuffer rather than having to create a new object for each change.
• A StringBuffer is created with a capacity which is the number of characters it can hold. – The capacity can change if necessary
![Page 22: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/22.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Creating a StringBuffer
• StringBuffer() creates a StringBuffer with a capacity of 16
• StringBuffer(int length) creates a StringBuffer with a capacity of length
• StringBuffer( String str) creates a StringBuffer with a capacity of str.length() + 16
![Page 23: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/23.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Initial Storage of a StringBuffer Object
StringBuffer str = new StringBuffer( "This cannot be");
![Page 24: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/24.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
Modifying the StringBuffer
str.insert( 4, " I know");
str.replace( 12, 18, "to");
![Page 25: ©2004 Brooks/Cole Chapter 7 Strings and Characters](https://reader034.vdocuments.net/reader034/viewer/2022042702/56649cce5503460f94998c38/html5/thumbnails/25.jpg)
Figures ©2004 Brooks/ColeCS 119: Intro to Java Fall 2005
The StringBuffer After the Append
str.append( "correct");