Spring Framework StringTokenizer in Java Example

An example on using java.util.StringTokenizer for counting no.of tokens split by a delimeter, using the methods hasMoreTokens(), nextToken() etc..


StringTokenizer Example




import java.util.*;

class StringTokenizerDemo

{





public static void main(String args[])

{





String st1="this is a test";

String st2="this,is,a,test";

String st3="this.is.a.test";





// Create a StringTokenizer with default delimeter i.e. space

StringTokenizer s1=new StringTokenizer(st1);





// Create a StringTokenizer with ',' as delimeter

StringTokenizer s2=new StringTokenizer(st2,",");





// Create a StringTokenizer with default delimeter i.e. space

StringTokenizer s3=new StringTokenizer(st3);





// Print the no.of tokens split by delimeter above

System.out.println("No.of tokens for s1 are "+s1.countTokens());

System.out.println("No.of tokens for s2 are "+s2.countTokens());

System.out.println("No.of tokens for s3 are "+s3.countTokens());





// Loop till hasMoreElements return false

while(s1.hasMoreElements())

{

System.out.println(s1.nextToken());

}





System.out.println();





// Loop till hasMoreTokens return false

while(s2.hasMoreTokens())

{

System.out.println(s2.nextElement());

}





System.out.println();





// Loop till hasMoreElements return false

while(s3.hasMoreTokens())

{

System.out.println(s3.nextToken("."));

}



}





}


Explanation


s1=new StringTokenizer(st1): Create StringTokenizer for the first string st1. The default delimeter is a blank space. A delimeter is nothing but a string that is used for separating another string.

s2=new StringTokenizer(s2,","): Here, we have specified ',' as the delimeter. So this is used to split the string s2 into parts called tokens separated by a comma. This acts as s2.split(",").

s3=new StringTokenizer(st3): Create StringTokenizer with default delimeter pointing st3.

s1.nextToken(): Get's the next token in the string nothing but the word that is after the delimeter (here word after the space). You'll have to note that this also includes the first token though it doesn't have the specified delimeter (space) before it i.e. the first word this

s2.nextElement(): Same as the above, but not the set of characters between a space, but the set of characters between a comma also including the first one.

s3.nextToken("."): This returns the token enclosed between two dots (.) also including the first word (this) but not space. Though the delimeter was not specified in the constructor, it was specified here (i.e. in the nextToken(".") method) to get the tokens enclosed between dots.

Note: The s3.countTokens() method returns only one i.e. only the first token is returned as the default delimeter was space and there was no space found in the string st3 so the first one (from starting till ending) was returned.

Output


No.of tokens for s1 are 4

No.of tokens for s2 are 4

No.of tokens for s3 are 1

this

is

a

test



this

is

a

test



this

is

a

test