java.lang.Object | +--java.util.StringTokenizer
Untamed: The string tokenizer class allows an application to break a
string into tokens. The tokenization method is much simpler than
the one used by the StreamTokenizer class. The
StringTokenizer methods do not distinguish among
identifiers, numbers, and quoted strings, nor do they recognize
and skip comments.
The set of delimiters (the characters that separate tokens) may be specified either at creation time or on a per-token basis.
An instance of StringTokenizer behaves in one of two
ways, depending on whether it was created with the
returnDelims flag having the value true
or false:
false, delimiter characters serve to
separate tokens. A token is a maximal sequence of consecutive
characters that are not delimiters.
true, delimiter characters are themselves
considered to be tokens. A token is thus either one delimiter
character, or a maximal sequence of consecutive characters that are
not delimiters.
A StringTokenizer object internally maintains a current position within the string to be tokenized. Some operations advance this current position past the characters processed.
A token is returned by taking a substring of the string that was used to create the StringTokenizer object.
The following is one example of the use of the tokenizer. The code:
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
println(st.nextToken());
}
prints the following output:
this is a test
java.io.StreamTokenizerprivate char
maxDelimChar
StringTokenizer(String str)
StringTokenizer(String str,
String delim)
StringTokenizer(String str,
String delim,
boolean returnDelims)
int
countTokens()
nextToken method can be called before it generates an
exception.
boolean
hasMoreTokens()
Object
nextElement()
nextToken method,
except that its declared return value is Object rather than
String.
private int
scanToken(int startPos)
private int currentPosition
private int newPosition
private int maxPosition
private String str
private String delimiters
private boolean retDelims
private boolean delimsChanged
private char maxDelimChar
public StringTokenizer(String str, String delim, boolean returnDelims)
delim argument are the delimiters
for separating tokens.
If the returnDelims flag is true, then
the delimiter characters are also returned as tokens. Each
delimiter is returned as a string of length one. If the flag is
false, the delimiter characters are skipped and only
serve as separators between tokens.
str - a string to be parsed.delim - the delimiters.returnDelims - flag indicating whether to return the delimiters
as tokens.public StringTokenizer(String str, String delim)
delim argument are the delimiters
for separating tokens. Delimiter characters themselves will not
be treated as tokens.
str - a string to be parsed.delim - the delimiters.public StringTokenizer(String str)
" \t\n\r\f": the space character,
the tab character, the newline character, the carriage-return character,
and the form-feed character. Delimiter characters themselves will
not be treated as tokens.
str - a string to be parsed.private void setMaxDelimChar()
private int skipDelimiters(int startPos)
private int scanToken(int startPos)
public boolean hasMoreTokens()
true if and only if there is at least one token
in the string after the current position; false
otherwise.public String nextToken()
public String nextToken(String delim)
delim - the new delimiters.
public boolean hasMoreElements()
hasMoreTokens
method. It exists so that this class can implement the
Enumeration interface.
hasMoreElements in interface Enumerationtrue if there are more tokens;
false otherwise.java.util.Enumeration,
java.util.StringTokenizer#hasMoreTokens()public Object nextElement()
nextToken method,
except that its declared return value is Object rather than
String. It exists so that this class can implement the
Enumeration interface.
nextElement in interface Enumerationjava.util.Enumeration,
java.util.StringTokenizer#nextToken()public int countTokens()
nextToken method can be called before it generates an
exception. The current position is not advanced.
java.util.StringTokenizer#nextToken()