StringSearch 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
StringSearch 是 SearchIterator 根據物件中定義的 RuleBasedCollator 比較規則,提供語言敏感的文字搜尋。
[Android.Runtime.Register("android/icu/text/StringSearch", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class StringSearch : Android.Icu.Text.SearchIterator
[<Android.Runtime.Register("android/icu/text/StringSearch", ApiSince=24, DoNotGenerateAcw=true)>]
type StringSearch = class
inherit SearchIterator
- 繼承
- 屬性
備註
StringSearch 是 SearchIterator 根據物件中定義的 RuleBasedCollator 比較規則,提供語言敏感的文字搜尋。 StringSearch 確保語言偏心率能被處理,例如德語整理器、characters 與 szlig;若選擇忽略案例,則會匹配 SS。 更多資訊請參閱「加護病房整合設計文件」。
選擇有兩種匹配選項:<br> 設 S' 為文字字串 S 的子串,介於起點與結束點之間 [start, end]。 <br> 一個模式字串 P 在偏移量 [開始、結束] 與文字字串 S 匹配,若
option 1. Some canonical equivalent of P matches some canonical equivalent
of S'
option 2. P matches S' and if P starts or ends with a combining mark,
there exists no non-ignorable combining mark before or after S?
in S respectively.
選項二。 是預設值。
此搜尋的 API 類似於其他文字迭代機制,如 中的 BreakIterator中斷迭代器。 利用這些 API,可以輕鬆掃描文字,尋找該模式的所有出現。 此搜尋迭代器允許透過呼叫 a #reset 後接 a #next 或 #previous來改變方向。 雖然可以不先呼叫 #reset 即可改變方向,但此操作會帶來一定的速度損失。 正向匹配結果將與反向方向的結果匹配
SearchIterator 提供 API 以指定要搜尋文字串中的起始位置,例如 SearchIterator#setIndex setIndex、 和 SearchIterator#preceding precedingSearchIterator#following following。 由於起始位置會依照指定設定,請注意搜尋在某些危險點可能會產生錯誤結果: <ul><li> 位於需要正規化的子字串中間。
<li> 若要找到下一個匹配,該局面不應是第二個需要與前一個字元交換的字元。 反之,若要找到前一個匹配,搜尋位置不應是第一個需要與下一個角色交換的字元。 例如某些泰語和老撾語角色需要交換。
<如果> 找到後續的模式匹配,收縮序列中除第一個位置外的任何位置都會失敗。 反之,若找到前一個模式匹配,則無效起始點將是收縮序列中除最後一個字元外的任何字元。
</ul>
若只希望邏輯斷點處有匹配,則可用 A BreakIterator 鍵。 使用 a BreakIterator 只會得到完全符合 的邊界 BreakIterator的結果。 例如,若使用字元切斷迭代器,字串「\u00e9」中不會找到模式「e」。
提供選項以處理重疊比賽。 例如在英文中,重疊匹配會產生「abab」模式的結果 0 和 2,而互斥的匹配只會得到 0。
同時也提供實現「非對稱搜尋」的選項,如 UTS #10 Unicode 排序演算法中所述,特別是 ElementComparisonType 值。
雖然在執行配對時會考慮彙整屬性,但這裡沒有設定和取得屬性的 API。 這些屬性可以透過從 取得整理器 #getCollator 並使用 API RuleBasedCollator來設定。 最後,要更新 StringSearch 到新的整理者屬性, #reset 必須呼叫。
限制: <br> 目前沒有合成字元由結合類別大於 0 的角色,接著是合併類別 == 0。 然而,如果未來有這樣的角色, StringSearch 並不保證選項一的結果。
請參閱 SearchIterator 文件中有關如何使用此類別實例實作文字搜尋的資訊與範例。
注意, StringSearch 不應該被子職業化。
Java 文件 android.icu.text.StringSearch。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| StringSearch(String, ICharacterIterator, Locale) |
初始化迭代器,使其使用語言特定的規則,並破壞參數區域中定義的迭代規則,以在參數目標文本中搜尋參數模式。 |
| StringSearch(String, ICharacterIterator, RuleBasedCollator, BreakIterator) |
初始化迭代器,使其使用參數整理器中定義的語言特定規則,在參數目標文本中搜尋參數模式。 |
| StringSearch(String, ICharacterIterator, RuleBasedCollator) |
初始化迭代器,使其使用參數整理器中定義的語言特定規則,在參數目標文本中搜尋參數模式。 |
| StringSearch(String, ICharacterIterator, ULocale) |
初始化迭代器,使其使用語言特定的規則,並破壞參數區域中定義的迭代規則,以在參數目標文本中搜尋參數模式。 |
| StringSearch(String, String) |
初始化迭代器,使其使用語言專屬規則,並破壞預設區域中定義的迭代規則,以在參數目標文本中搜尋參數模式。 |
欄位
| 名稱 | Description |
|---|---|
| Done |
DONE 由 previous() 和 next() 在所有有效匹配回傳後回傳,若完全沒有匹配則由 first() 和 last() 回傳。 (繼承來源 SearchIterator) |
屬性
| 名稱 | Description |
|---|---|
| BreakIterator |
回傳用於限制偵測匹配的索引的 BreakIterator。 -或- 設定 BreakIterator,用來限制匹配偵測的點。 (繼承來源 SearchIterator) |
| Canonical |
決定是否設定典範匹配(選項1,如類別文件所述)。 -或- 設定標準配對模式。 |
| Class |
回傳此 |
| Collator |
語言規則會被 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| Index |
回傳正在搜尋的文本中的當前索引。 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| MatchedText |
回傳與最近呼叫 |
| MatchLength |
回傳與搜尋模式相符的字串長度。 (繼承來源 SearchIterator) |
| MatchStart |
回傳搜尋中文字串的匹配索引。 (繼承來源 SearchIterator) |
| Overlapping |
如果重疊屬性已被設定,則回傳真。 -或- 決定是否回傳重疊的配對。 (繼承來源 SearchIterator) |
| Pattern |
回傳正在搜尋的模式 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| Target |
回傳要搜尋的字串文字。 -或- 設定目標文字要搜尋。 (繼承來源 SearchIterator) |
| TargetText |
搜尋目標文字。 (繼承來源 SearchIterator) |
| ThresholdClass |
|
| ThresholdType |
|
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| First() |
回傳第一個索引,該索引字串文字與搜尋模式相符。 (繼承來源 SearchIterator) |
| Following(Int32) |
回傳第一個索引,該索引大小於或大於 |
| GetElementComparisonType() |
回傳 collation element 比較型態。 (繼承來源 SearchIterator) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| HandleNext(Int32) |
抽象方法,透過覆寫子類來提供尋找目標文本下一個匹配的機制。 (繼承來源 SearchIterator) |
| HandlePrevious(Int32) |
抽象方法,透過覆寫子類別提供尋找目標文本中先前匹配的機制。 (繼承來源 SearchIterator) |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Last() |
回傳目標文本中與搜尋模式相符的最後索引。 (繼承來源 SearchIterator) |
| Next() |
回傳下一個文本與搜尋模式相符的索引,從當前位置開始。迭代器會調整為其當前索引(由 回傳的 |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Preceding(Int32) |
回傳第一個索引,該 |
| Previous() |
回傳字串文字與搜尋模式相符的前一個點的索引,從當前位置開始。 (繼承來源 SearchIterator) |
| Reset() |
重置迭代。 (繼承來源 SearchIterator) |
| SetElementComparisonType(SearchIterator+ElementComparisonType) |
設定排序元素比較型別。 (繼承來源 SearchIterator) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetIndex(Int32) |
設定目標文字中下一次搜尋將開始的位置。 (繼承來源 SearchIterator) |
| SetMatchLength(Int32) |
設定目標文字中最近一次匹配的長度。 (繼承來源 SearchIterator) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |