ICharacterIterator 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此介面定義了一種雙向文字迭代的協定。
[Android.Runtime.Register("java/text/CharacterIterator", "", "Java.Text.ICharacterIteratorInvoker")]
public interface ICharacterIterator : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/text/CharacterIterator", "", "Java.Text.ICharacterIteratorInvoker")>]
type ICharacterIterator = interface
interface ICloneable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 衍生
- 屬性
- 實作
備註
此介面定義了一種雙向文字迭代的協定。 迭代器會對有界的字元序列進行迭代。 字元的索引以 getBeginIndex() 回傳的值開始,並依照 getEndIndex()-1 回傳的值進行索引。
迭代器維護一個目前的字元索引,其有效範圍為 getBeginIndex() 到 getEndIndex();getEndIndex() 值被加入,以便處理零長度文字範圍,並出於歷史考量。 目前的索引可透過呼叫 getIndex() 取得,並直接透過呼叫 setIndex()、first() 和 last() 來設定。
前述()與Next()用於迭代。 若迭代器從 getBeginIndex() 到 getEndIndex() -1 範圍外移動,則返回 DONE,表示迭代器已到達序列結束。 其他方法也會回傳 DONE 以表示目前索引不在此範圍內。
範例:
從頭到尾橫掃全文
{@code
public void traverseForward(CharacterIterator iter) {
for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
processChar(c);
}
}
}
從頭到尾倒推文本
{@code
public void traverseBackward(CharacterIterator iter) {
for(char c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
processChar(c);
}
}
}
從文本中指定位置向前或向後移動。 此範例中呼叫 notBoundary() 代表一些額外的停止條件。
{@code
public void traverseOut(CharacterIterator iter, int pos) {
for (char c = iter.setIndex(pos);
c != CharacterIterator.DONE && notBoundary(c);
c = iter.next()) {
}
int end = iter.getIndex();
for (char c = iter.setIndex(pos);
c != CharacterIterator.DONE && notBoundary(c);
c = iter.previous()) {
}
int start = iter.getIndex();
processSection(start, end);
}
}
在 1.1 版本中加入。
Java 文件 java.text.CharacterIterator。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
欄位
| 名稱 | Description |
|---|---|
| Done |
當迭代子到達文本的結尾或開頭時,會回傳常數。 |
屬性
| 名稱 | Description |
|---|---|
| BeginIndex |
回傳開始索引。 |
| EndIndex |
回傳末端索引。 |
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| Index |
回傳目前的索引。 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
此介面定義了一種雙向文字迭代的協定。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立這個迭代器的副本 |
| Current() |
取得當前位置的字元(由 getIndex()回傳)。 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| First() |
將位置設定為 getBeginIndex(),並回傳該位置的字元。 |
| Last() |
將位置設定為 getEndIndex()-1(若文字為空則為 getEndIndex(),並回傳該位置的字元。 |
| Next() |
將迭代器的索引遞增一,並回傳新索引的字元。 |
| Previous() |
將迭代器的索引減少一,並回傳新索引的字元。 |
| SetIndex(Int32) |
將位置設定為文字中指定的位置並回傳該字元。 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
此介面定義了一種雙向文字迭代的協定。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
此介面定義了一種雙向文字迭代的協定。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |