Chapter 7 Strings Use the String class to process fixed strings. Use the StringBuffer class to...
-
Upload
nigel-white -
Category
Documents
-
view
244 -
download
2
Transcript of Chapter 7 Strings Use the String class to process fixed strings. Use the StringBuffer class to...
Chapter 7 Strings
Use the String class to process fixed strings. Use the StringBuffer class to process
flexible strings. Use the StringTokenizer class to extract
tokens from a string.
The String Class Declaring a String String Length (length()) Substrings (substring(index), substring(start, end)) Retrieving Individual Characters in a string String Concatenation (concat) String Comparisons (equals, compareTo)
The String Class Declaring a String:String s = new String();
String message = "Welcome to Java!”; // OK
String message = new String("Welcome to Java!“);// ??
Strings are immutable Strings are immutable. The contents of a string cannot
be changed. One cannot delete, modify or inserts characters. But one can create a new string.
Therefore, you must use the equals method to test whether two strings have the same contents, and the == operator to test whether the two strings have the same references (that is, point to the same memory location).
Finding String Length
Finding string length using the length() method:
Example:
String message = "Welcome";
int len = message.length(); // (returns 7)
Retrieving Individual Characters in a String
Do not use message[0]!
Use:
char message.charAt(int index)
Index starts from 0
Example:
String message = "Welcome";
char c = message.charAt(1); // c is ‘e’
Substrings
String is an immutable class; its valuescannot be changed individually.
String s1 = "Welcome to Java";
String s2 = s1.substring(0,10) + "HTML";
String Concatenation
String s1=“Hello ”;
String s2=“World!”;
We can do concatenation in two ways:
1) String s3 = s1.concat(s2);
or
2) String s3 = s1 + s2;
Result: s3 is “Hello World!”
String Concatenation
Example 1:
String s1=“Result is ”;
int n = 4;
String s2 = s1 + n;
System.out.println(s2);
Output: Result is 4
String Concatenation
Example 2:
String s1=“Result is ”;
String s2 = s1 + 2 + 2;
String s3 = s1 + (2 + 2);
System.out.println(s2);
System.out.println(s3);
Output: ?
String ConcatenationExample 2:
String s1=“Result is ”;
String s2 = s1 + 2 + 2;
String s3 = s1 + (2 + 2);
System.out.println(s2);
System.out.println(s3);
Output:
Result is 22
Result is 4
String Comparisons equals
String s1 = "Welcome";String s2 = "welcome";
if (s1.equals(s2)) { // s1 and s2 have the same contents } if (s1 == s2)
{ // s1 and s2 have the same reference }
String Comparisons, cont. compareTo(Object object)
String s1 = "Welcome";String s2 = "welcome";
if (s1.compare(s2) > 0) { // s1 is greater than s2 } else if (s1.compare(s2 == 0) { // s1 and s2 have the same reference } else // s1 is less than s2
String Conversions The contents of a string cannot be changed once the string is created. But you can convert a string to a new string using the following methods:
String toLowerCase()
String toUpperCase()
String trim()
String replace(oldChar, newChar)
String ConversionsExample:
String s1 = “ WAY ”;
String s2 = s1.trim(); // “WAY”
String s3 = s2.toLowerCase(); // “way”
String s4 = s3.replace(‘w’,’d’); // ”day”
String s5 = s4.toUpperCase(); // “DAY”
Convert char and numbers to Strings
The String class provides several static valueOf() methods for converting a character, an array of characters, and numeric values to strings. These methods have the same name valueOf() with different argument types char, char[], double, long, int, and float. Example: , to convert a double value to a string, use
String.valueOf(5.44). The return value is string consists of characters ‘5’, ‘.’, ‘4’, and ‘4’.
Convert char and numbers to Strings
Example: int i = 3;
double d = 3.14;
char c = ‘e’;
char[] e = {‘y’,’e’,’s’};
String s1 = String.valueOf(i); // “3”
String s2 = String.valueOf(d); // “3.14”
String s3 = String.valueOf(c); // “e”
String s4 = String.valueOf(e); // “yes”
Are two Strings equal? boolean equals(String s2)
String s1 = "Welcome";String s2 = "welcome";
if (s1.equals(s2)) { // s1 and s2 have the same contents } if (s1 == s2) { // s1 and s2 have the same reference
String Comparisons, cont. int compareTo(String s2)
String s1 = "Welcome";String s2 = "welcome";
if (s1.compare(s2) > 0) { // s1 is greater than s2 } else if (s1.compare(s2 == 0) { // s1 and s2 have the same reference } else // s1 is less than s2
The StringBuffer Class The StringBuffer class is an alternative to the String class. In general, a string buffer can be used wherever a string is used.
StringBuffer is more flexible than String.
You can add, insert, or append new contents
into a string buffer.
StringBuffer Constructors public StringBuffer()
No characters, initial capacity 16 characters.
public StringBuffer(int length)No characters, initial capacity specified by the length argument.
public StringBuffer(String str)Represents the same sequence of charactersas the String argument. Initial capacity 16plus the length of the String argument.
Appending New Contentsinto a String Buffer
StringBuffer strBuf = new StringBuffer();strBuf.append("Welcome");strBuf.append(' ');strBuf.append("to");strBuf.append(' ');strBuf.append("Java");
“Welcome to Java”
The StringTokenizer Class Constructors
StringTokenizer(String s)
// default delimiters: \r\n\t and space StringTokenizer(String s, String delim, boolean returnTokens)
StringTokenizer(String s, String delim)
The StringTokenizer Class Methods
int countTokens() boolean hasMoreTokens()
String nextToken()
String nextToken(String delim)
Example 7.4import java.util.StringTokenizer;public class TestStringTokenizer { public static main(Strings[] args) { String s =“Java and Classes”; StringTokenizer st = new StringTokenizer(s); int n = st.countTokens(); // n is 3 while(st.hasMoreTokens()) { System.out.println(st.nextToken()); } }}
Java
and
Classes