Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Chapter 7 Strings Use the String class to process fixed strings. the StringBuffer class to process flexible strings. Use the StringTokenizer class to extract tokens from a string. Use 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 values cannot 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 else and s2 have the same reference // 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 String String String toLowerCase() toUpperCase() trim() 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 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 characters as the String argument. Initial capacity 16 plus the length of the String argument. Appending New Contents into 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