StringTokenizer and StringBuffer classes - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

StringTokenizer and StringBuffer classes

Description:

A token is a portion of a string that is separated from another portion of that ... Modifiable (i.e., mutable) strings are supplied by the StringBuffer class of the ... – PowerPoint PPT presentation

Number of Views:164
Avg rating:3.0/5.0
Slides: 12
Provided by: ccseKf
Category:

less

Transcript and Presenter's Notes

Title: StringTokenizer and StringBuffer classes


1
StringTokenizer and StringBuffer classes
  • Overview
  • StringTokenizer class
  • Some StringTokenizer methods
  • StringTokenizer examples
  • StringBuffer class
  • Some StringBuffer methods
  • Creating a String object from a StringBuffer
    object
  • Preview 2D-arrays

2
StringTokenizer class
  • A token is a portion of a string that is
    separated from another portion of that string by
    one or more chosen characters (called
    delimiters).
  • Example Assuming that a while space character
    (i.e., blank, \n (new line ), \t (tab), or
    \r (carriage return)) is a delimiter, then the
    string I like KFUPM very much has the tokens
    I, like, KFUPM, very, and much
  • The StringTokenizer class contained in the
    java.util package can be used to break a string
    into separate tokens. This is particularly useful
    in those situations in which we want to read and
    process one token at a time the BufferedReader
    class does not have a method to read one token at
    a time.
  • The StringTokenizer constructors are

StringTokenizer(String str) Uses white space characters as a delimiters. The delimiters are not returned.
StringTokenizer(String str, String delimiters) delimiters is a string that specifies the delimiters. The delimiters are not returned.
StringTokenizer(String str, String delimiters, boolean delimAsToken) If delimAsToken is true, then each delimiter is also returned as a token otherwise delimiters are not returned.
3
Some StringTokenizer methods
  • Some StringTokenizer methods are
  • To break a string into tokens, a loop having one
    of the following forms may be used

int countTokens( ) Using the current set of delimiters, the method returns the number of tokens left.
boolean hasMoreTokens( ) Returns true if one or more tokens remain in the string otherwise it returns false.
String nextToken( ) throws NoSuchElementException Returns the next token as a string. Throws an exception if there are no more tokens
String nextToken(String newDelimiters) throws NoSuchElementException Returns the next token as a string and sets the delimiters to newDelimiters. Throws an exception if there are no more tokens.
4
StringTokenizer examples
  • StringTokenizer tokenizer new
    String(stringName)
  • int tokenCount tokenizer.countTokens( )
  • for(int k 1 k lt tokenCount k)
  • String token tokenizer.nextToken( )
  • // process token
  • . . .
  • Example1
  • import java.util.StringTokenizer
  • public class Tokenizer1
  • public static void main(String args)
  • StringTokenizer wordFinder new
    StringTokenizer
  • ("We like KFUPM very much")

5
StringTokenizer examples (Contd)
  • Example2 The following program reads grades from
    the keyboard and finds their average. The grades
    are read in one line.
  • import java.io.
  • import java.util.StringTokenizer
  • public class Tokenizer5
  • public static void main(String args) throws
    IOException
  • BufferedReader stdin new BufferedReader(new

  • InputStreamReader(System.in))
  • System.out.println("Enter grades in one
    line")
  • String inputLine stdin.readLine( )
  • StringTokenizer tokenizer new
    StringTokenizer(inputLine)
  • int count 0
  • float grade, sum 0.0F
  • try
  • while( tokenizer.hasMoreTokens( ) )
  • grade Float.parseFloat(
    tokenizer.nextToken( ) )

6
StringTokenizer examples (Contd)
  • catch(NumberFormatException e)
  • System.err.println("Error - an invalid
    float value read")
  • Example3 Given that a text file grades.txt
    contains ids and quiz grades of students
  • 980000 50.0 30.0 40.0
  • 975348 50.0 35.0
  • 960035 80.0 70.0 60.0 75.0
  • 950000 20.0 40.0
  • 996245 65.0 70.0 80.0 60.0 45.0
  • 987645 50.0 60.0
  • the program on the next slide will display the
    id, number of quizzes taken, and average of each
    student

7
StringTokenizer examples (Contd)
  • import java.io.
  • import java.util.StringTokenizer
  • public class Tokenizer6
  • public static void main(String args) throws
    IOException
  • BufferedReader inputStream new
    BufferedReader(new

    FileReader("grades.txt")
    )
  • StringTokenizer tokenizer
  • String inputLine, id
  • int count
  • float sum
  • System.out.println("ID Number of
    Quizzes Average\n")
  • while((inputLine inputStream.readLine(
    )) ! null)
  • tokenizer new StringTokenizer(inputLine)
  • id tokenizer.nextToken( )
  • count tokenizer.countTokens( )

8
StringBuffer class
  • A String object is not modifiable once created
    (i.e., it is immutable).
  • Modifiable (i.e., mutable) strings are supplied
    by the StringBuffer class of the package
    java.lang
  • A String buffer object can be created using any
    of the following constructors
  • Note If the capacity of a StringBuffer object is
    exceeded, the buffer is automatically expanded to
    accommodate the additional characters.

StringBuffer( ) Creates a StringBuffer object containing no characters in it with an initial capacity of 16 characters
StringBuffer(int size) throws NegativeArraySizeException Creates a StringBuffer object containing no characters in it with an initial capacity of size characters. Throws an exception if size lt 0
StringBuffer(String str) Creates a StringBuffer object containing str with an initial capacity of (str.length( ) 16) characters
9
Some StringBuffer methods
  • The StringBuffer class has some methods that are
    similar to those in the String class (e.g.,
    length( ), charAt(index), substring(index),
    substring(index1, index2)
  • The following are some of the methods of the
    StringBuffer class

int length( ) Returns the number of characters in the buffer
int capacity( ) Returns the capacity of the buffer
char charAt(i) Returns the character at position i
void setCharAt(i, ch) Replaces char at i with ch
StringBuffer append(ob) Appends the string form of the object ob or a primitive value to the buffer.
StringBuffer insert(i, ob) Inserts the string form of the object ob (or a primitive value) at i
StringBuffer replace(s, f, str) Replaces the substring from s to f 1 with str
StringBuffer delete(s, f) StringBiffer deleteCharAt(i) Deletes characters from s to f - 1 Deletes the character at i
StringBuffer reverse( ) Reverses the contents of buffer.
String toString( ) Returns the contents of buffer as a string.
10
Creating a String object from a StringBuffer
object
  • Example
  • public class InsertTest
  • public static void main(String args)
  • StringBuffer sb new StringBuffer("Drink
    Java!")
  • System.out.println(sb)
  • sb.insert(6, Hot ")
  • System.out.println(sb)
  • Creating a String object from a StringBuffer
    object
  • A string object can be created from a
    StringBuffer object using one of the following
    StringBuffer methods

String toString( ) Returns the string contained in the invoking StringBuffer object.
String substring(int index) Returns the substring from index to the end of the invoking StringBuffer object.
String substring(int index1, int index2) Returns the substring from index1 to index2 1 of the invoking StringBuffer object.
11
Creating a String object from a StringBuffer
object (Contd)
  • Example
  • public class ReverseString
  • public static void main(String args)
  • String str "What's going on?"
  • System.out.println(reverseString(str))
  • public static String reverseString(String
    source)
  • StringBuffer dest new
    StringBuffer(source)
  •   dest.reverse( )
  • return dest.toString( )
Write a Comment
User Comments (0)
About PowerShow.com