250 likes | 263 Views
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())
E N D
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 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: 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 Conversions Example: 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 contentsinto 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 Stringargument.
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.4 import 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