public final class CharacterReader
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) static char |
EOF |
private char[] |
input |
private int |
length |
private int |
mark |
private static int |
maxCacheLen |
private int |
pos |
private java.lang.String[] |
stringCache |
Constructor and Description |
---|
CharacterReader(java.lang.String input) |
Modifier and Type | Method and Description |
---|---|
void |
advance()
Moves the current position by one.
|
private java.lang.String |
cacheString(int start,
int count)
Caches short strings, as a flywheel pattern, to reduce GC load.
|
(package private) char |
consume() |
(package private) java.lang.String |
consumeAsString() |
(package private) java.lang.String |
consumeData() |
(package private) java.lang.String |
consumeDigitSequence() |
(package private) java.lang.String |
consumeHexSequence() |
(package private) java.lang.String |
consumeLetterSequence() |
(package private) java.lang.String |
consumeLetterThenDigitSequence() |
(package private) java.lang.String |
consumeTagName() |
java.lang.String |
consumeTo(char c)
Reads characters up to the specific char.
|
(package private) java.lang.String |
consumeTo(java.lang.String seq) |
java.lang.String |
consumeToAny(char... chars)
Read characters until the first of any delimiters is found.
|
(package private) java.lang.String |
consumeToAnySorted(char... chars) |
(package private) java.lang.String |
consumeToEnd() |
(package private) boolean |
containsIgnoreCase(java.lang.String seq) |
char |
current()
Get the char at the current position.
|
boolean |
isEmpty()
Tests if all the content has been read.
|
(package private) void |
mark() |
(package private) boolean |
matchConsume(java.lang.String seq) |
(package private) boolean |
matchConsumeIgnoreCase(java.lang.String seq) |
(package private) boolean |
matches(char c) |
(package private) boolean |
matches(java.lang.String seq) |
(package private) boolean |
matchesAny(char... seq) |
(package private) boolean |
matchesAnySorted(char[] seq) |
(package private) boolean |
matchesDigit() |
(package private) boolean |
matchesIgnoreCase(java.lang.String seq) |
(package private) boolean |
matchesLetter() |
(package private) int |
nextIndexOf(char c)
Returns the number of characters between the current position and the next instance of the input char
|
(package private) int |
nextIndexOf(java.lang.CharSequence seq)
Returns the number of characters between the current position and the next instance of the input sequence
|
int |
pos()
Gets the current cursor position in the content.
|
(package private) boolean |
rangeEquals(int start,
int count,
java.lang.String cached)
Check if the value of the provided range equals the string.
|
(package private) void |
rewindToMark() |
java.lang.String |
toString() |
(package private) void |
unconsume() |
static final char EOF
private static final int maxCacheLen
private final char[] input
private final int length
private int pos
private int mark
private final java.lang.String[] stringCache
public int pos()
public boolean isEmpty()
public char current()
char consume()
void unconsume()
public void advance()
void mark()
void rewindToMark()
java.lang.String consumeAsString()
int nextIndexOf(char c)
c
- scan targetint nextIndexOf(java.lang.CharSequence seq)
seq
- scan targetpublic java.lang.String consumeTo(char c)
c
- the delimiterjava.lang.String consumeTo(java.lang.String seq)
public java.lang.String consumeToAny(char... chars)
chars
- delimiters to scan forjava.lang.String consumeToAnySorted(char... chars)
java.lang.String consumeData()
java.lang.String consumeTagName()
java.lang.String consumeToEnd()
java.lang.String consumeLetterSequence()
java.lang.String consumeLetterThenDigitSequence()
java.lang.String consumeHexSequence()
java.lang.String consumeDigitSequence()
boolean matches(char c)
boolean matches(java.lang.String seq)
boolean matchesIgnoreCase(java.lang.String seq)
boolean matchesAny(char... seq)
boolean matchesAnySorted(char[] seq)
boolean matchesLetter()
boolean matchesDigit()
boolean matchConsume(java.lang.String seq)
boolean matchConsumeIgnoreCase(java.lang.String seq)
boolean containsIgnoreCase(java.lang.String seq)
public java.lang.String toString()
toString
in class java.lang.Object
private java.lang.String cacheString(int start, int count)
boolean rangeEquals(int start, int count, java.lang.String cached)