strings and arraylists april 23, 2012 asfa ap cs

17
Strings and ArrayLists April 23, 2012 ASFA AP CS

Upload: shon-singleton

Post on 18-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Strings and ArrayLists April 23, 2012 ASFA AP CS

Strings and ArrayLists

April 23, 2012ASFA AP CS

Page 2: Strings and ArrayLists April 23, 2012 ASFA AP CS

String class facts• An object of the String class represents a string of

characters.• The String class belongs to the java.lang package,

which does not require an import statement.• Like other classes, String has constructors and

methods.• Unlike other classes, String has two operators, + and

+= (used for concatenation).• Strings are immutable

Page 3: Strings and ArrayLists April 23, 2012 ASFA AP CS

Strings

• Strings are objects, and thus references

• String s; // no string• String s = new String("Hi"); // string• String s = "Hi"; // string• String s = ""; // string

Page 4: Strings and ArrayLists April 23, 2012 ASFA AP CS

Literal Strings

• are anonymous objects of the String class• are defined by enclosing text in double quotes. “This

is a literal String”• don’t have to be constructed.• can be assigned to String variables.• can be passed to methods and constructors as

parameters.• have methods you can call.

Page 5: Strings and ArrayLists April 23, 2012 ASFA AP CS

Literal String examples//assign a literal to a String variableString name = “Robert”;

//assign literals with escape sequencesString twoLine = “first \nsecond line”;String quote = " He said, \" Yes\".";String bksl = “This is backslash: \\”;

//calling a method on a literal Stringchar firstInitial = “Robert”.charAt(0);

//calling a method on a String variablechar firstInitial = name.charAt(0);

Page 6: Strings and ArrayLists April 23, 2012 ASFA AP CS

Immutability

• Once created, a string cannot be changed: none of its methods changes the string.

• Such objects are called immutable.• Immutable objects are convenient because several

references can point to the same object safely: there is no danger of changing an object through one reference without the others being aware of the change.

Page 7: Strings and ArrayLists April 23, 2012 ASFA AP CS

Empty Strings

• An empty String has no characters. It’s length is 0.

• Not the same as an uninitialized String.

String word1 = ""; String word2 = new String();

private String errorMsg; errorMsg is null

Empty strings

Page 8: Strings and ArrayLists April 23, 2012 ASFA AP CS

Changing String Values

• Strings have no methods to let you change an existing character in a string.– To change a string you have to reassign the

variable to a new string.– example:• String greeting = “Hello”;

greeting = greeting.substr(0,4) + “!”;• Result: greeting is now “Hell!”

Page 9: Strings and ArrayLists April 23, 2012 ASFA AP CS

Comparing String Values

• Because String variables hold memory addresses, you cannot make a simple comparison of the contents

• The String class provides a number of methods– equals() method– equalsIgnoreCase() method– compareTo() method

Page 10: Strings and ArrayLists April 23, 2012 ASFA AP CS

Comparing String Values

• equals() method- Evaluates the contents of two String objects to determine if they are equivalent– This method returns true if the two String objects

have identical contents– Can take either a variable String object or a literal

string as its argument• s1.equals(s2);• s1.equals(“Hello”);

Page 11: Strings and ArrayLists April 23, 2012 ASFA AP CS

Comparing String Values

• compareTo() method- Used to compare two Strings– Returns zero only if the two Strings hold the same

value– If there is any difference between the Strings, a

negative number is returned if the calling object is “less than” the argument

– A positive number is returned if the calling object is “more than” the argument

– Strings are considered “less than” or “more than” each other based on their Unicode values

Page 12: Strings and ArrayLists April 23, 2012 ASFA AP CS

String Equality

String s1 = new String("Hi");String s2 = new String("Hi");System.out.println( s1 == s2 ); // falseSystem.out.println( s1.equals(s2) ); // true

String reference "Hi"

"Hi"

s1

String references2

Page 13: Strings and ArrayLists April 23, 2012 ASFA AP CS

Methods — substring

“lev"“mutable""" (empty string)

”television".substring (2,5); “immutable".substring (2);“bob".substring (3);

Returns:

television

i k

television

i

• String subs = word.substring (i, k);– returns the substring of chars in

positions from i to k-1• String subs = word.substring (i);– returns the substring from the i-th

char to the end

Returns a new String by copying characters from an existing String.

Page 14: Strings and ArrayLists April 23, 2012 ASFA AP CS

Methods — Concatenation

String word1 = “re”, word2 = “think”; word3 = “ing”;int num = 2;

• String result = word1 + word2;//concatenates word1 and word2 “rethink“

• String result = word1.concat (word2);//the same as word1 + word2 “rethink“

• result += word3;//concatenates word3 to result “rethinking”

• result += num; //converts num to String//and concatenates it to result “rethinking2”

Page 15: Strings and ArrayLists April 23, 2012 ASFA AP CS

Methods — Find (indexOf)

String name =“President George Washington";

date.indexOf (‘P'); 0date.indexOf (‘e'); 2date.indexOf (“George"); 10date.indexOf (‘e', 3); 6

date.indexOf (“Bob"); -1date.lastIndexOf (‘e'); 15

Returns:

(not found)

(starts searching at position 3)

0 2 6 10 15

Page 16: Strings and ArrayLists April 23, 2012 ASFA AP CS

Some Other String Methods

Page 17: Strings and ArrayLists April 23, 2012 ASFA AP CS

Object.toString()

• Every class implements toString( ) because it is defined by Object.

• The default implementation of toString( ) is seldom sufficient.

• Most classes override toString( ) and provide string representations.

• Fortunately, this is easy to do.