public abstract class UCharacterIterator
extends Object
implements Cloneable
java.lang.Object | |
↳ | android.icu.text.UCharacterIterator |
抽象类,定义用于迭代文本对象的API。这是用于前向和后向迭代以及随机访问文本对象的接口。 正向迭代后增完成,向后迭代先减语义完成,而java.text.CharacterIterator
接口方法提供向前迭代与“预增”和落后的迭代先减语义。 这个API对代码点的前向迭代更有效。 另一个主要区别是,此API可以执行代码单元和代码点迭代, java.text.CharacterIterator
只能迭代代码单元,并且仅限于BMP(0 - 0xFFFF)
Constants |
|
---|---|
int |
DONE 指示我们已经达到UTF16文本的末尾。 |
Protected constructors |
|
---|---|
UCharacterIterator() 受保护的子类的默认构造函数 |
Public methods |
|
---|---|
Object |
clone() 创建此迭代器的副本,独立于其他迭代器。 |
abstract int |
current() 返回当前索引处的代码单元。 |
int |
currentCodePoint() 返回当前索引处的代码点。 |
CharacterIterator |
getCharacterIterator() 为此迭代器的基础文本返回一个 |
abstract int |
getIndex() 获取文本中的当前索引。 |
static final UCharacterIterator |
getInstance(String source) 返回给定源字符串的 |
static final UCharacterIterator |
getInstance(StringBuffer source) 返回给定源StringBuffer的 |
static final UCharacterIterator |
getInstance(Replaceable source) 返回 |
static final UCharacterIterator |
getInstance(CharacterIterator source) 给定一个CharacterIterator返回一个 |
static final UCharacterIterator |
getInstance(char[] source, int start, int limit) 返回给定源字符数组的 |
static final UCharacterIterator |
getInstance(char[] source) 返回给定源字符数组的 |
abstract int |
getLength() 返回文本的长度 |
abstract int |
getText(char[] fillIn, int offset) 使用迭代器的基础文本存储填充缓冲区如果缓冲区容量不足,则抛出异常。 |
String |
getText() 用于以字符串形式返回底层文本存储的便捷方法 |
final int |
getText(char[] fillIn)
|
int |
moveCodePointIndex(int delta) 将当前位置移动指定的代码点数,根据增量符号(分别为正值或负值)向前或向后移动。 |
int |
moveIndex(int delta) 将当前位置移动指定的代码单元数,根据增量符号(分别为正值或负值)向前或向后移动。 |
abstract int |
next() 返回索引处的UTF16代码单元,并递增到下一个代码单元(增量后语义)。 |
int |
nextCodePoint() 返回index处的代码点,并递增到下一个代码点(增量后语义)。 |
abstract int |
previous() 减去文本中前一个代码单元的位置,并返回(前减量语义)。 |
int |
previousCodePoint() 撤回到文本中前一个代码点的开始位置,并返回它(预减量语义)。 |
abstract void |
setIndex(int index) 将索引设置为文本中的指定索引。 |
void |
setToLimit() 将当前索引设置为限制。 |
void |
setToStart() 将当前索引设置为开始。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Object clone ()
创建此迭代器的副本,独立于其他迭代器。 如果无法克隆迭代器,则返回null。
Returns | |
---|---|
Object |
copy of this iterator |
Throws | |
---|---|
CloneNotSupportedException |
int current ()
返回当前索引处的代码单元。 如果索引超出范围,则返回DONE。 索引不变。
Returns | |
---|---|
int |
current code unit |
int currentCodePoint ()
返回当前索引处的代码点。 如果当前索引无效,则返回DONE。 如果当前索引指向主导代理,并且存在以下跟踪代理,则返回代码点。 否则,返回索引处的代码单元。 索引不变。
Returns | |
---|---|
int |
current codepoint |
CharacterIterator getCharacterIterator ()
为此迭代器的基础文本返回一个java.text.CharacterIterator
对象。 返回的迭代器独立于此迭代器。
Returns | |
---|---|
CharacterIterator |
java.text.CharacterIterator object |
UCharacterIterator getInstance (String source)
返回给定源字符串的 UCharacterIterator
对象。
Parameters | |
---|---|
source |
String : a string |
Returns | |
---|---|
UCharacterIterator |
UCharacterIterator object |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null |
UCharacterIterator getInstance (StringBuffer source)
返回给定源StringBuffer的 UCharacterIterator
对象。
Parameters | |
---|---|
source |
StringBuffer : an string buffer of UTF-16 code units |
Returns | |
---|---|
UCharacterIterator |
UCharacterIterator object |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null |
UCharacterIterator getInstance (Replaceable source)
返回 UCharacterIterator
给予对象 Replaceable
对象。
Parameters | |
---|---|
source |
Replaceable : a valid source as a Replaceable object |
Returns | |
---|---|
UCharacterIterator |
UCharacterIterator object |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null |
UCharacterIterator getInstance (CharacterIterator source)
给定一个CharacterIterator返回一个 UCharacterIterator
对象。
Parameters | |
---|---|
source |
CharacterIterator : a valid CharacterIterator object. |
Returns | |
---|---|
UCharacterIterator |
UCharacterIterator object |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null |
UCharacterIterator getInstance (char[] source, int start, int limit)
返回给定源字符数组的 UCharacterIterator
对象。
Parameters | |
---|---|
source |
char : an array of UTF-16 code units |
start |
int
|
limit |
int
|
Returns | |
---|---|
UCharacterIterator |
UCharacterIterator object |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null |
UCharacterIterator getInstance (char[] source)
返回给定源字符数组的 UCharacterIterator
对象。
Parameters | |
---|---|
source |
char : an array of UTF-16 code units |
Returns | |
---|---|
UCharacterIterator |
UCharacterIterator object |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null |
int getText (char[] fillIn, int offset)
使用迭代器的基础文本存储填充缓冲区如果缓冲区容量不足,则抛出异常。 填充缓冲区的容量应至少等于通过调用getLength()
获得的迭代器中的文本长度)。 用法:
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 |
char : an array of chars to fill with the underlying UTF-16 code units. |
offset |
int : the position within the array to start putting the data. |
Returns | |
---|---|
int |
the number of code units added to fillIn, as a convenience |
Throws | |
---|---|
IndexOutOfBoundsException |
exception if there is not enough room after offset in the array, or if offset < 0. |
String getText ()
用于以字符串形式返回底层文本存储的便捷方法
Returns | |
---|---|
String |
the underlying text storage in the iterator as a string |
int getText (char[] fillIn)
getText(char[], int)
便利性覆盖提供了0的偏移量。
Parameters | |
---|---|
fillIn |
char : an array of chars to fill with the underlying UTF-16 code units. |
Returns | |
---|---|
int |
the number of code units added to fillIn, as a convenience |
Throws | |
---|---|
IndexOutOfBoundsException |
exception if there is not enough room in the array. |
int moveCodePointIndex (int delta)
将当前位置移动指定的代码点数,根据增量符号(分别为正值或负值)向前或向后移动。 如果当前索引处于跟踪代理,则第一次调整是按代码单位进行的,其余调整是按代码点进行的。 如果生成的索引小于零,则索引设置为零,如果生成的索引大于限制,则索引设置为限制。
Parameters | |
---|---|
delta |
int : the number of code units to move the current index. |
Returns | |
---|---|
int |
the new index |
Throws | |
---|---|
IndexOutOfBoundsException |
is thrown if an invalid delta is supplied |
int moveIndex (int delta)
将当前位置移动指定的代码单元数,根据增量符号(分别为正值或负值)向前或向后移动。 如果生成的索引小于零,则索引设置为零,如果生成的索引大于限制,则索引设置为限制。
Parameters | |
---|---|
delta |
int : the number of code units to move the current index. |
Returns | |
---|---|
int |
the new index. |
Throws | |
---|---|
IndexOutOfBoundsException |
is thrown if an invalid index is supplied |
int next ()
返回索引处的UTF16代码单元,并递增到下一个代码单元(增量后语义)。 如果索引超出范围,则返回DONE,并将迭代器重置为文本的极限。
Returns | |
---|---|
int |
the next UTF16 code unit, or DONE if the index is at the limit of the text. |
int nextCodePoint ()
返回index处的代码点,并递增到下一个代码点(增量后语义)。 如果index不指向有效的代理对,则行为与next()
相同。 否则,迭代器递增,超过代理对,并且由该对代表的代码点被返回。
Returns | |
---|---|
int |
the next codepoint in text, or DONE if the index is at the limit of the text. |
int previous ()
减去文本中前一个代码单元的位置,并返回(前减量语义)。 如果结果索引小于0,索引将重置为0,并返回DONE。
Returns | |
---|---|
int |
the previous code unit in the text, or DONE if the new index is before the start of the text. |
int previousCodePoint ()
撤回到文本中前一个代码点的开始位置,并返回它(预减量语义)。 如果索引不是有效的代理对,则行为与previous()
相同。 否则,迭代器递减到代理对的开始,并返回由该对代表的代码点。
Returns | |
---|---|
int |
the previous code point in the text, or DONE if the new index is before the start of the text. |
void setIndex (int index)
将索引设置为文本中的指定索引。
Parameters | |
---|---|
index |
int : the index within the text. |
Throws | |
---|---|
IndexOutOfBoundsException |
is thrown if an invalid index is supplied |