24
Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer Class java.util.StringTokenizer

Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Embed Size (px)

Citation preview

Page 1: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Strings and Related Classes

• String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer Class java.util.StringTokenizer

Page 2: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Fundamentals of Characters and Strings

• Characters “Building blocks” of Java source programs

• String Series of characters treated as single unit May include letters, digits, etc. Object of class String

• See API http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

Page 3: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

String Constructors

• Class String provides eleven constructors String()

▴ Initializes a newly created String object so that it represents an empty character sequence.

String(byte[] bytes)▴ Constructs a new String by decoding the specified array of bytes using the

platform's default charset.

String(byte[] bytes, int offset, int length)▴ Constructs a new String by decoding the specified subarray of bytes using the

platform's default charset.

String(byte[] bytes, int offset, int length, String charsetName)▴ Constructs a new String by decoding the specified subarray of bytes using the

specified charset.

String(byte[] bytes, String charsetName)▴ Constructs a new String by decoding the specified array of bytes using the

specified charset.

Page 4: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

String Constructors

String(char[] value)▴ Allocates a new String so that it represents the sequence of characters currently

contained in the character array argument.

String(char[] value, int offset, int count)▴ Allocates a new String that contains characters from a subarray of the character

array argument.

String(int[] codePoints, int offset, int count)▴ Allocates a new String that contains characters from a subarray of the Unicode

code point array argument.

String(String original)▴ Initializes a newly created String object so that it represents the same sequence of

characters as the argument; in other words, the newly created string is a copy of the argument string.

String(StringBuffer buffer)▴ Allocates a new string that contains the sequence of characters currently contained

in the string buffer argument.

String(StringBuilder builder)▴ Allocates a new string that contains the sequence of characters currently contained

in the string builder argument.

Page 5: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

String Constructors

• See example in Figure 29.1 Uses 4 different constructors Note how jGRASP denotes literal Strings

Page 6: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

String Methods length, charAt and getChars

• Method length Determine String length

▴ Like arrays, Strings always “know” their size▴ Unlike array, Strings do not have length instance variable

• Method charAt Get character at specific location in String

• Method getChars Get entire set of characters in String

• See example in Figure 29.2

Page 7: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Comparing Strings

• Comparing String objects Method equals Method equalsIgnoreCase Method compareTo Method regionMatches

• See example in Figure 29.3 == compares two Strings to see if they refer to the same object .equals() compares to Strings to see if they contain the same

value

Page 8: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Locating Characters and Substrings in Strings

• See examples in Figures 29.4 and 29.5

Page 9: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Extracting Substrings from Strings

• Create Strings from other Strings Method substring

• See example in Figure 29.6

Page 10: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Concatenating Strings

• + is a concatenation operator for Strings, although it is implemented using a StringBuffer

• Method concat concatenates two String objects• See example in Figure 29.7

Page 11: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Miscellaneous String Methods

• Miscellaneous String methods Return modified copies of String Return character array

• See example in Figure 29.8

Page 12: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

String Method valueOf

• String provides static class methods Method valueOf

▴ Returns String representation of object, data, etc.

• See example in Figure 29.9

Page 13: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Class StringBuffer

• Class StringBuffer When String object is created, its contents cannot change Used for creating and manipulating dynamic string data

▴ i.e., modifiable Strings

Can store characters based on capacity▴ Capacity expands dynamically to handle additional characters▴ length is always <= capacity

Uses operators + and += for String concatenation

• See API http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html

Page 14: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

StringBuffer Constructors

• Four StringBuffer constructors StringBuffer()

▴ Constructs a string buffer with no characters in it and an initial capacity of 16 characters.

StringBuffer(CharSequence seq)▴ Constructs a string buffer that contains the same characters as

the specified CharSequence.

StringBuffer(int capacity)▴ Constructs a string buffer with no characters in it and the specified

initial capacity.

StringBuffer(String str)▴ Constructs a string buffer initialized to the contents of the

specified string.

• See example in Figure 29.10

Page 15: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

StringBuffer Methods length, capacity, setLength and ensureCapacity

• Method length Return StringBuffer length

• Method capacity Return StringBuffer capacity

• Method setLength Increase or decrease StringBuffer length

• Method ensureCapacity Set StringBuffer capacity Guarantee that StringBuffer has minimum capacity

• See example in Figure 29.11

Page 16: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

StringBuffer Methods charAt, setCharAt, getChars and reverse

• Manipulating StringBuffer characters Method charAt

▴ Return StringBuffer character at specified index

Method setCharAt▴ Set StringBuffer character at specified index

Method getChars▴ Return character array from StringBuffer

Method reverse▴ Reverse StringBuffer contents

• See example in Figure 29.12

Page 17: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

StringBuffer append Methods

• Method append Allow data values to be added to StringBuffer

• See example in Figure 29.13

Page 18: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

StringBuffer Insertion and Deletion Methods

• Method insert Allow data-type values to be inserted into StringBuffer

• Methods delete and deleteCharAt Allow characters to be removed from StringBuffer

• See example in Figure 29.14

Page 19: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Wrapper Class Character

• Treat primitive variables as objects Type wrapper classes

• Boolean• Character• Double• Float• Byte• Short• Integer• Long

• See examples in Figures 29.15, 29.16, and 29.17

Page 20: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Class StringTokenizer

• Tokenizer Partition String into individual substrings Use delimiter Java offers java.util.StringTokenizer

• See example in Figure 29.18

Page 21: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Regular Expressions

• Sequence of characters and symbols• Defines a set of possible inputs, generalizes a

wildcard• Predefined set of strings

\d – any digit \D – any non-digit \w – any word character (letter, digit, underscore) \W – any non-word character \s – any whitespace character (space, tab, CR, LF, FF) \S – any non-whitespace character

Page 22: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Example Regular Expressions

• Square brackets can be used to match any enclosed character

• A range of characters can be specified using -• The complement can be created by using ^ as the

first character• Examples

[aeiou] will match any vowel [a-zA-Z] will match any letter [^aeiou] will match any non-vowel character

Page 23: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Example Regular Expressions

• * matches zero or more patterns• + matches one or more patterns• ? matches zero or one patterns• {n} matches exactly n patterns• {n,} matches up to n patterns• {n,m} matches between m and n patterns• () can be used to group specifications• | is an or for patterns• Examples

A+ and A* will match AAA [0-9]A* will match 1, [0-9]A+ will not; both match 1AAA

Page 24: Strings and Related Classes String and character processing Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer

Class Pattern and Class Matcher

• Class Pattern An immutable regular expression

• Class Match A regular expression matching operation

• See exmaples in Figures 29.20, 29.21, 29.23, 29.24