Package com.twelvemonkeys.util
Class StringTokenIterator
- java.lang.Object
-
- com.twelvemonkeys.util.AbstractTokenIterator
-
- com.twelvemonkeys.util.StringTokenIterator
-
- All Implemented Interfaces:
TokenIterator,java.util.Enumeration<java.lang.String>,java.util.Iterator<java.lang.String>
public class StringTokenIterator extends AbstractTokenIterator
StringTokenIterator, a drop-in replacement forStringTokenizer. StringTokenIterator has the following features:- Iterates over a strings, 20-50% faster than
StringTokenizer(and magnitudes faster thanString.split(..)orPattern.split(..)) - Implements the
Iteratorinterface - Optionally returns delimiters
- Optionally returns empty elements
- Optionally iterates in reverse
- Resettable
- Version:
- $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/util/StringTokenIterator.java#1 $
- See Also:
StringTokenizer
-
-
Field Summary
Fields Modifier and Type Field Description private char[]delimitersstatic intFORWARDprivate booleanincludeDelimitersprivate booleanincludeEmptyprivate charmaxDelimiterStores the value of the delimiter character with the highest value.private intmaxPositionprivate java.lang.Stringnextprivate java.lang.StringnextDelimiterprivate intpositionprivate booleanreversestatic intREVERSEprivate java.lang.Stringstring
-
Constructor Summary
Constructors Modifier Constructor Description StringTokenIterator(java.lang.String pString)Creates a StringTokenIteratorprivateStringTokenIterator(java.lang.String pString, char[] pDelimiters, int pDirection, boolean pIncludeDelimiters, boolean pIncludeEmpty)Implementation.StringTokenIterator(java.lang.String pString, java.lang.String pDelimiters)Creates a StringTokenIteratorStringTokenIterator(java.lang.String pString, java.lang.String pDelimiters, boolean pIncludeDelimiters)Creates a StringTokenIteratorStringTokenIterator(java.lang.String pString, java.lang.String pDelimiters, int pDirection)Creates a StringTokenIteratorStringTokenIterator(java.lang.String pString, java.lang.String pDelimiters, int pDirection, boolean pIncludeDelimiters, boolean pIncludeEmpty)Creates a StringTokenIterator
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringfetchForward()private java.lang.StringfetchNext()private java.lang.StringfetchReverse()booleanhasNext()Returnstrueif the iteration has more elements.private static charinitMaxDelimiter(char[] pDelimiters)Returns the highest char in the delimiter set.java.lang.Stringnext()Returns the next element in the iteration.voidreset()Resets this iterator.private intscanForNext()private intscanForPrev()private static char[]toCharArray(java.lang.String pDelimiters)-
Methods inherited from class com.twelvemonkeys.util.AbstractTokenIterator
hasMoreElements, hasMoreTokens, nextElement, nextToken, remove
-
-
-
-
Field Detail
-
string
private final java.lang.String string
-
delimiters
private final char[] delimiters
-
position
private int position
-
maxPosition
private final int maxPosition
-
next
private java.lang.String next
-
nextDelimiter
private java.lang.String nextDelimiter
-
includeDelimiters
private final boolean includeDelimiters
-
includeEmpty
private final boolean includeEmpty
-
reverse
private final boolean reverse
-
FORWARD
public static final int FORWARD
- See Also:
- Constant Field Values
-
REVERSE
public static final int REVERSE
- See Also:
- Constant Field Values
-
maxDelimiter
private final char maxDelimiter
Stores the value of the delimiter character with the highest value. It is used to optimize the detection of delimiter characters.
-
-
Constructor Detail
-
StringTokenIterator
public StringTokenIterator(java.lang.String pString)
Creates a StringTokenIterator- Parameters:
pString- the string to be parsed.
-
StringTokenIterator
public StringTokenIterator(java.lang.String pString, java.lang.String pDelimiters)Creates a StringTokenIterator- Parameters:
pString- the string to be parsed.pDelimiters- the delimiters.
-
StringTokenIterator
public StringTokenIterator(java.lang.String pString, java.lang.String pDelimiters, int pDirection)Creates a StringTokenIterator- Parameters:
pString- the string to be parsed.pDelimiters- the delimiters.pDirection- iteration direction.
-
StringTokenIterator
public StringTokenIterator(java.lang.String pString, java.lang.String pDelimiters, boolean pIncludeDelimiters)Creates a StringTokenIterator- Parameters:
pString- the string to be parsed.pDelimiters- the delimiters.pIncludeDelimiters- flag indicating whether to return delimiters as tokens.
-
StringTokenIterator
public StringTokenIterator(java.lang.String pString, java.lang.String pDelimiters, int pDirection, boolean pIncludeDelimiters, boolean pIncludeEmpty)Creates a StringTokenIterator- Parameters:
pString- the string to be parsed.pDelimiters- the delimiters.pDirection- iteration direction.pIncludeDelimiters- flag indicating whether to return delimiters as tokens.pIncludeEmpty- flag indicating whether to return empty tokens
-
StringTokenIterator
private StringTokenIterator(java.lang.String pString, char[] pDelimiters, int pDirection, boolean pIncludeDelimiters, boolean pIncludeEmpty)Implementation.- Parameters:
pString- the string to be parsed.pDelimiters- the delimiters.pDirection- iteration direction.pIncludeDelimiters- flag indicating whether to return delimiters as tokens.pIncludeEmpty- flag indicating whether to return empty tokens
-
-
Method Detail
-
toCharArray
private static char[] toCharArray(java.lang.String pDelimiters)
-
initMaxDelimiter
private static char initMaxDelimiter(char[] pDelimiters)
Returns the highest char in the delimiter set.- Parameters:
pDelimiters- the delimiter set- Returns:
- the highest char
-
reset
public void reset()
Resets this iterator.
-
hasNext
public boolean hasNext()
Returnstrueif the iteration has more elements. (In other words, returnstrueifnextwould return an element rather than throwing an exception.)- Returns:
trueif the iterator has more elements.
-
fetchNext
private java.lang.String fetchNext()
-
fetchReverse
private java.lang.String fetchReverse()
-
fetchForward
private java.lang.String fetchForward()
-
scanForNext
private int scanForNext()
-
scanForPrev
private int scanForPrev()
-
next
public java.lang.String next()
Returns the next element in the iteration.- Returns:
- the next element in the iteration.
- Throws:
java.util.NoSuchElementException- iteration has no more elements.
-
-