語言

ICharacterIterator 介面

定義

此介面定義了一種雙向文字迭代的協定。

[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

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

此介面定義了一種雙向文字迭代的協定。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
Clone()

建立這個迭代器的副本

Current()

取得當前位置的字元(由 getIndex()回傳)。

Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
First()

將位置設定為 getBeginIndex(),並回傳該位置的字元。

Last()

將位置設定為 getEndIndex()-1(若文字為空則為 getEndIndex(),並回傳該位置的字元。

Next()

將迭代器的索引遞增一,並回傳新索引的字元。

Previous()

將迭代器的索引減少一,並回傳新索引的字元。

SetIndex(Int32)

將位置設定為文字中指定的位置並回傳該字元。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

此介面定義了一種雙向文字迭代的協定。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

此介面定義了一種雙向文字迭代的協定。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於