Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of 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