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
Iterator
interface - 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[]
delimiters
static int
FORWARD
private boolean
includeDelimiters
private boolean
includeEmpty
private char
maxDelimiter
Stores the value of the delimiter character with the highest value.private int
maxPosition
private java.lang.String
next
private java.lang.String
nextDelimiter
private int
position
private boolean
reverse
static int
REVERSE
private java.lang.String
string
-
Constructor Summary
Constructors Modifier Constructor Description StringTokenIterator(java.lang.String pString)
Creates a StringTokenIteratorprivate
StringTokenIterator(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.String
fetchForward()
private java.lang.String
fetchNext()
private java.lang.String
fetchReverse()
boolean
hasNext()
Returnstrue
if the iteration has more elements.private static char
initMaxDelimiter(char[] pDelimiters)
Returns the highest char in the delimiter set.java.lang.String
next()
Returns the next element in the iteration.void
reset()
Resets this iterator.private int
scanForNext()
private int
scanForPrev()
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()
Returnstrue
if the iteration has more elements. (In other words, returnstrue
ifnext
would return an element rather than throwing an exception.)- Returns:
true
if 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.
-
-