| java.lang.Object com.ibm.icu.text.UCharacterIterator
All known Subclasses: com.ibm.icu.impl.StringUCharacterIterator, com.ibm.icu.impl.ReplaceableUCharacterIterator, com.ibm.icu.impl.CharacterIteratorWrapper, com.ibm.icu.impl.UCharArrayIterator,
UCharacterIterator | abstract public class UCharacterIterator implements Cloneable,UForwardCharacterIterator(Code) | | Abstract class that defines an API for iteration on text objects.This is an
interface for forward and backward iteration and random access into a text
object. Forward iteration is done with post-increment and backward iteration
is done with pre-decrement semantics, while the
java.text.CharacterIterator interface methods provided forward
iteration with "pre-increment" and backward iteration with pre-decrement
semantics. This API is more efficient for forward iteration over code points.
The other major difference is that this API can do both code unit and code point
iteration, java.text.CharacterIterator can only iterate over
code units and is limited to BMP (0 - 0xFFFF)
author: Ram |
Method Summary | |
public Object | clone() Creates a copy of this iterator, independent from other iterators. | abstract public int | current() Returns the code unit at the current index. | public int | currentCodePoint() Returns the codepoint at the current index.
If the current index is invalid, DONE is returned.
If the current index points to a lead surrogate, and there is a following
trail surrogate, then the code point is returned. | public CharacterIterator | getCharacterIterator() Returns a java.text.CharacterIterator object for
the underlying text of this iterator. | abstract public int | getIndex() Gets the current index in text. | final public static UCharacterIterator | getInstance(Replaceable source) Returns a UCharacterIterator object given a
Replaceable object. | final public static UCharacterIterator | getInstance(String source) Returns a UCharacterIterator object given a
source string. | final public static UCharacterIterator | getInstance(char[] source) Returns a UCharacterIterator object given a
source character array. | final public static UCharacterIterator | getInstance(char[] source, int start, int limit) Returns a UCharacterIterator object given a
source character array. | final public static UCharacterIterator | getInstance(StringBuffer source) Returns a UCharacterIterator object given a
source StringBuffer. | final public static UCharacterIterator | getInstance(CharacterIterator source) Returns a UCharacterIterator object given a
CharacterIterator.
Parameters: source - a valid CharacterIterator object. | abstract public int | getLength() | abstract public int | getText(char[] fillIn, int offset) Fills the buffer with the underlying text storage of the iterator
If the buffer capacity is not enough a exception is thrown. | final public int | getText(char[] fillIn) Convenience override for getText(char[], int)>/code> that provides
an offset of 0.
Parameters: fillIn - an array of chars to fill with the underlying UTF-16 code units. | public String | getText() | public int | moveCodePointIndex(int delta) Moves the current position by the number of code points
specified, either forward or backward depending on the sign of
delta (positive or negative respectively). | public int | moveIndex(int delta) Moves the current position by the number of code units
specified, either forward or backward depending on the sign
of delta (positive or negative respectively). | abstract public int | next() Returns the UTF16 code unit at index, and increments to the next
code unit (post-increment semantics). | public int | nextCodePoint() Returns the code point at index, and increments to the next code
point (post-increment semantics). | abstract public int | previous() Decrement to the position of the previous code unit in the
text, and return it (pre-decrement semantics). | public int | previousCodePoint() Retreat to the start of the previous code point in the text,
and return it (pre-decrement semantics). | abstract public void | setIndex(int index) Sets the index to the specified index in the text.
Parameters: index - the index within the text. | public void | setToLimit() Sets the current index to the limit. | public void | setToStart() Sets the current index to the start. |
UCharacterIterator | protected UCharacterIterator()(Code) | | Protected default constructor for the subclasses
|
clone | public Object clone() throws CloneNotSupportedException(Code) | | Creates a copy of this iterator, independent from other iterators.
If it is not possible to clone the iterator, returns null.
copy of this iterator |
current | abstract public int current()(Code) | | Returns the code unit at the current index. If index is out
of range, returns DONE. Index is not changed.
current code unit |
currentCodePoint | public int currentCodePoint()(Code) | | Returns the codepoint at the current index.
If the current index is invalid, DONE is returned.
If the current index points to a lead surrogate, and there is a following
trail surrogate, then the code point is returned. Otherwise, the code
unit at index is returned. Index is not changed.
current codepoint |
getCharacterIterator | public CharacterIterator getCharacterIterator()(Code) | | Returns a java.text.CharacterIterator object for
the underlying text of this iterator. The returned iterator is
independent of this iterator.
java.text.CharacterIterator object |
getIndex | abstract public int getIndex()(Code) | | Gets the current index in text.
current index in text. |
getInstance | final public static UCharacterIterator getInstance(Replaceable source)(Code) | | Returns a UCharacterIterator object given a
Replaceable object.
Parameters: source - a valid source as a Replaceable object UCharacterIterator object exception: IllegalArgumentException - if the argument is null |
getInstance | final public static UCharacterIterator getInstance(char[] source)(Code) | | Returns a UCharacterIterator object given a
source character array.
Parameters: source - an array of UTF-16 code units UCharacterIterator object exception: IllegalArgumentException - if the argument is null |
getInstance | final public static UCharacterIterator getInstance(char[] source, int start, int limit)(Code) | | Returns a UCharacterIterator object given a
source character array.
Parameters: source - an array of UTF-16 code units UCharacterIterator object exception: IllegalArgumentException - if the argument is null |
getLength | abstract public int getLength()(Code) | | Returns the length of the text
length of the text |
getText | abstract public int getText(char[] fillIn, int offset)(Code) | | Fills the buffer with the underlying text storage of the iterator
If the buffer capacity is not enough a exception is thrown. The capacity
of the fill in buffer should at least be equal to length of text in the
iterator obtained by calling getLength() Usage:
UChacterIterator iter = new UCharacterIterator.getInstance(text);
char[] buf = new char[iter.getLength()];
iter.getText(buf);
OR
char[] buf= new char[1];
int len = 0;
for(;;){
try{
len = iter.getText(buf);
break;
}catch(IndexOutOfBoundsException e){
buf = new char[iter.getLength()];
}
}
Parameters: fillIn - an array of chars to fill with the underlying UTF-16 code units. Parameters: offset - the position within the array to start putting the data. the number of code units added to fillIn, as a convenience exception: IndexOutOfBounds - exception if there is not enoughroom after offset in the array, or if offset < 0. |
getText | final public int getText(char[] fillIn)(Code) | | Convenience override for getText(char[], int)>/code> that provides
an offset of 0.
Parameters: fillIn - an array of chars to fill with the underlying UTF-16 code units. the number of code units added to fillIn, as a convenience exception: IndexOutOfBounds - exception if there is not enoughroom in the array. |
getText | public String getText()(Code) | | Convenience method for returning the underlying text storage as as string
the underlying text storage in the iterator as a string |
moveCodePointIndex | public int moveCodePointIndex(int delta)(Code) | | Moves the current position by the number of code points
specified, either forward or backward depending on the sign of
delta (positive or negative respectively). If the current index
is at a trail surrogate then the first adjustment is by code
unit, and the remaining adjustments are by code points. If the
resulting index would be less than zero, the index is set to
zero, and if the resulting index would be greater than limit,
the index is set to limit.
Parameters: delta - the number of code units to move the current index. the new index exception: IndexOutOfBoundsException - is thrown if an invalid delta is supplied |
moveIndex | public int moveIndex(int delta)(Code) | | Moves the current position by the number of code units
specified, either forward or backward depending on the sign
of delta (positive or negative respectively). If the resulting
index would be less than zero, the index is set to zero, and if
the resulting index would be greater than limit, the index is
set to limit.
Parameters: delta - the number of code units to move the currentindex. the new index. exception: IndexOutOfBoundsException - is thrown if an invalid index is supplied |
next | abstract public int next()(Code) | | Returns the UTF16 code unit at index, and increments to the next
code unit (post-increment semantics). If index is out of
range, DONE is returned, and the iterator is reset to the limit
of the text.
the next UTF16 code unit, or DONE if the index is at the limitof the text. |
nextCodePoint | public int nextCodePoint()(Code) | | Returns the code point at index, and increments to the next code
point (post-increment semantics). If index does not point to a
valid surrogate pair, the behavior is the same as
next(). Otherwise the iterator is incremented past
the surrogate pair, and the code point represented by the pair
is returned.
the next codepoint in text, or DONE if the index is atthe limit of the text. |
previous | abstract public int previous()(Code) | | Decrement to the position of the previous code unit in the
text, and return it (pre-decrement semantics). If the
resulting index is less than 0, the index is reset to 0 and
DONE is returned.
the previous code unit in the text, or DONE if the newindex is before the start of the text. |
previousCodePoint | public int previousCodePoint()(Code) | | Retreat to the start of the previous code point in the text,
and return it (pre-decrement semantics). If the index is not
preceeded by a valid surrogate pair, the behavior is the same
as previous() . Otherwise the iterator is
decremented to the start of the surrogate pair, and the code
point represented by the pair is returned.
the previous code point in the text, or DONE if the newindex is before the start of the text. |
setIndex | abstract public void setIndex(int index)(Code) | | Sets the index to the specified index in the text.
Parameters: index - the index within the text. exception: IndexOutOfBoundsException - is thrown if an invalid index is supplied |
setToLimit | public void setToLimit()(Code) | | Sets the current index to the limit.
|
setToStart | public void setToStart()(Code) | | Sets the current index to the start.
|
|
|