Presentation is loading. Please wait.

Presentation is loading. Please wait.

Strings Carol Yarbrough AP Computer Science Instructor Alabama School of Fine Arts.

Similar presentations


Presentation on theme: "Strings Carol Yarbrough AP Computer Science Instructor Alabama School of Fine Arts."— Presentation transcript:

1 Strings Carol Yarbrough AP Computer Science Instructor Alabama School of Fine Arts

2 Topics: literal strings String constructors immutability of strings String comparisons Substrings String concatenation Other commonly used methods toString() method on Objects

3 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

4 Strings Strings are objects, and thus references String s;// no string String s = new String("Hi");// string String s = "Hi";// string String s = "";// string

5 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.

6 Literal String examples //assign a literal to a String variable String name = “Robert”; //assign literals with escape sequences String twoLine = “first \nsecond line”; String quote = " He said, \" Yes\"."; String bksl = “This is backslash: \\”; //calling a method on a literal String char firstInitial = “Robert”.charAt(0); //calling a method on a String variable char firstInitial = name.charAt(0);

7 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.

8 Advantages Of Immutability Uses less memory. String word1 = "Java"; String word2 = word1; String word1 = “Java"; String word2 = new String(word1); word1 OK Less efficient: wastes memory “Java" word2 word1 word2

9 Disadvantages of Immutability Less efficient — you need to create a new string and throw away the old one even for small changes. String word = “java"; char ch = Character.toUpperCase(word.charAt (0)); word = ch + word.substring (1); word “java"“Java"

10 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

11 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.substring(0,4) + “!”; Result: greeting is now “Hell!”

12 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

13 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”);

14 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

15 String Equality String s1 = new String("Hi"); String s2 = new String("Hi"); System.out.println( s1 == s2 ); // false System.out.println( s1.equals(s2) ); // true String reference "Hi" s1 String reference s2

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

17 String Equality String s1 = "Hi"; String s2 = "Hi"; System.out.println( s1 == s2 );// true System.out.println( s1.equals(s2) ); // true String reference "Hi" s1 String reference s2

18 String Equality String s1 = "Hi"; String s2 = "H" + "i"; // evaluated during compile System.out.println( s1 == s2 );// true System.out.println( s1.equals(s2) ); // true String reference "Hi" s1 String reference s2

19 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.

20 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”

21 Methods — Find (indexOf) String name =“President George Washington"; name.indexOf (‘P'); 0 name.indexOf (‘e'); 2 name.indexOf (“George"); 10 name.indexOf (‘e', 3); 6 name.indexOf (“Bob"); - 1 name.lastIndexOf (‘e'); 15 Returns: (not found) (starts searching at position 3) 0 2 6 10 15

22 Using Other String Methods There are additional String methods available in the String class –toUpperCase() and toLowerCase() convert any String to its uppercase or lowercase equivalent – the String class contains many other useful methods (see java.sun.com)

23 Some Other String Methods

24 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.

25 String toString( ) To implement toString( ), simply return a String object that contains a string that describes an object of your class. By overriding toString( ), you allow the resulting strings to be used in print( ) and println( ) statements and in concatenation expressions.

26 toString() Example // Override toString() for Box class. class Box { double width, height, depth; Box(double w, double h, double d) { width = w; height = h; depth = d; } public String toString() { return "Dimensions are " + width + " by " + depth + " by " + height + "."; } }

27 Strings on the AP Exam Strings are an important part of the AP exam. There are, however, few questions strictly about Strings Instead knowledge of Strings is needed to answer questions about sorting, searching and arrays.

28 A Couple of String Problems 2008 AP exam problems 12, 30 and 40 2008 AP exam Free Response problem 1


Download ppt "Strings Carol Yarbrough AP Computer Science Instructor Alabama School of Fine Arts."

Similar presentations


Ads by Google