Presentation is loading. Please wait.

Presentation is loading. Please wait.

Strings A string is a sequence of characters that is treated as a single value. Strings are objects. We have been using strings all along. Every time.

Similar presentations


Presentation on theme: "Strings A string is a sequence of characters that is treated as a single value. Strings are objects. We have been using strings all along. Every time."— Presentation transcript:

1 Strings A string is a sequence of characters that is treated as a single value. Strings are objects. We have been using strings all along. Every time you use a “” string, a string object is created automatically. For example, to display text Blotgrunge ... out to reality ... HelloWorld.java String is a class in the java.lang package. System.out.println("Hello, how are you?"); We have also seen the string concatenation operation. For example, the following code reads in a person’s name and greets the user: //assume inputBox and messageBox are declared //and initialized correctly String name; name = inputBox.getString("What is your name?"); messageBox.show("Hello, " + name + ". Nice to meet you.");

2 Explicit String Objects
A declaration and object creation are needed for instances of the String class. For example, String name1,name2,name3; name1 = "Frooot"; name2 = new String(name1); name3 = new String({’F’,’r’,’o’,’o’,’t’}); Blitititi … out to reality … StringVar.java Blitititi … out to reality … StringVar2.java

3 Concatenating Strings
The + operator concatenates strings. A new string object is created - the operands are not affected. Old strings are garbage collected. Gadzook … out to reality … StringCat.java Note that System.out.print really does this, not “and also print”. Gadzook … back to reality … StringVar.java Gadzook … back to reality … StringVar2.java

4 String variables are References - 1
Code String word1, word2; word1 = "Java”; word2 = word1; A Both word1 and word2 are allocated memory (to store references), but the objects themselves are not yet created, so they both contain null. word1 L word2 State of Memory L After is executed A

5 String variables are References - 2
Code String word1, word2; word1 = "Java”; word2 = word1; B One String object is created and assigned to word1, so word1 contains the address of this object. word1 word2 word1 String Java word2 L State of Memory After is executed B

6 String variables are References - 3
Content of word1, which is an address, is assigned to word2, making word2 refer to the same object. Code String word1, word2; word1 = "Java”; word2 = word1; C word1 word2 String Java After is executed C State of Memory Gadzook … out to reality … StringAlias.java Gadzook … out to reality … StringAlias2.java

7 Equality (==) vs. equals – Case 1
String Java word1 String Java word2 word1 and word2 point to different objects having the same string. false word1 == word2 word1.equals( word2 ) true

8 Equality (==) vs. equals – Case 2
String Java word1 String Bali word2 word1 and word2 point to different objects with different strings. false word1 == word2 word1.equals( word2 ) false

9 Equality (==) vs. equals - Case 3
word1 word2 String Java word1 and word2 point to the same object. true word1 == word2 word1.equals( word2 ) true Quixote … out to reality … StringJavas.java

10 Determining the Size 7 Error!
We determine the number of characters in a String with the length method. String name = "Sumatra"; String str2 = ""; String str3; name.length(); 7 str2.length(); Error because no object is created for str3, so it is a null. Remember that a String is an object. If we simply declare, for example, String str3; and forget to create a String object, then str3 is a null object. You will get a NullPointerException if you try to a method of non-existent object, such as str3 in this example. str3.length(); Error!

11 Accessing Individual Elements
Individual characters in a String accessed with the charAt method. String name = “Sumatra”; 1 2 3 4 5 6 S u m a t r name name.charAt( 3 ) Olipidoo … out to reality … StringVowels.java Olipidoo … out to reality … StringWords.java

12 Other Useful String Operators
Method Meaning compareTo Compares the two strings. str1.compareTo( str2 ) substring Extracts the a substring from a string. str1.substring( 1, 4 ) trim Removes the leading and trailing spaces. str1.trim( ) valueOf Converts a given primitive data value to a string. String.valueOf( ) startsWith Returns true if a string starts with a specified prefix string. str1.startsWith( str2 ) endsWith Returns true if a string ends with a specified suffix string. str1.endsWith( str2 ) Here are some examples: String str1 = “Java”, str2 = “ Wow “; str1.compareTo( “Hello” ); //returns positive integer //because str1 >= “Hello” str1.substring( 1, 4 ); //returns “ava” str2.trim( ) //returns “Wow”, str2 stays same str1.startsWith( “Ja” ); //returns true str1.endsWith( “avi” ); //returns false

13 Command line Strings The formal arguments to the main method receive strings from the command line arguments. When running a program, supply command line arguments after the program name, e.g., java MyJavaProgram cat 27 'Java is great!' has three command line arguments. Gadzook … out to reality … MyJavaProgram.java When we write String name; we must say “name is a variable of type String whose value is a reference to an instance of String” to be precise. However, when the value of a variable X is a reference to an instance of class Y, we usually say “X is an instance of Y” or “X is a Y object.” For example, we say canvas is a DrawingBoard object

14 Strings and Methods Strings are reference variables, so (like arrays) formal parameters point to the actual parameter data Strings returned from methods point to the data created in the method Likidylik … out to reality … StringMethod.java

15 Strings are Immutable A String object is immutable, which means that once a String object is created, is cannot be changed. It is not possible to add, delete, or modify characters of a String object. The methods of the String class, such as toUpperCase and substring, do not modify the original string; they return a new string. Java adopts this immutability restriction to implement an efficient memory allocation scheme for managing String objects. Oieeeeiooo … out to reality … StringImmut.java

16 StringBuffer Creating a new string from the old one will work for most cases, but sometimes manipulating the content of a string directly is more convenient. Manipulation means operations such as replacing a character, appending a string with another string, deleting a portion of a string, and so forth. Java has a StringBuffer class for this. StringBuffers are created from strings (no shorthand) Ay … out to reality … StringBufferX.java Ay … out to reality … StringBufferMake.java


Download ppt "Strings A string is a sequence of characters that is treated as a single value. Strings are objects. We have been using strings all along. Every time."

Similar presentations


Ads by Google