1 / 28

Strings

Strings. Carol Yarbrough AP Computer Science Instructor Alabama School of Fine Arts. Topics :. literal strings String constructors immutability of strings String comparisons Substrings String concatenation Other commonly used methods toString () method on Objects.

conroy
Download Presentation

Strings

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. “Java" “Java" “Java" Advantages Of Immutability Uses less memory. String word1 = "Java"; String word2 = word1; String word1 = “Java"; String word2 = new String(word1); word1 word1 word2 word2 Less efficient: wastes memory OK

  9. “java" “Java" 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

  10. Empty Strings • An empty String has no characters. It’s length is 0. • Not the same as an uninitialized String. Empty strings String word1 = ""; String word2 = new String(); errorMsg is null private String errorMsg;

  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 "Hi" s1 String reference "Hi" s2 String reference

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

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

  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 "Hi" s1 String reference s2 String reference

  19. Methods — substring • 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. television i k television i Returns: “lev" “mutable" "" (empty string) ”television".substring (2,5); “immutable".substring (2); “bob".substring(3);

  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) 0 2 6 10 15 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: (starts searching at position 3) (not found)

  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

More Related