Download Strings

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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