Normalizer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
以前の Unicode 正規化 API。
[Android.Runtime.Register("android/icu/text/Normalizer", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class Normalizer : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.ICloneable
[<Android.Runtime.Register("android/icu/text/Normalizer", ApiSince=24, DoNotGenerateAcw=true)>]
type Normalizer = class
inherit Object
interface ICloneable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 継承
- 属性
- 実装
注釈
以前の Unicode 正規化 API。
この API は Normalizer2 クラスに置き換えられ、下位互換性のためにのみ使用できます。 このクラスは、単に Normalizer2 クラスにデリゲートします。 2 つの例外があります。新しい API では、 QuickCheckResult と compare()の代わりは提供されません。
normalize は Unicode テキストを同等の構成または分解された形式に変換し、テキストの並べ替えと検索を容易にします。
normalize では、次で説明する標準の正規化形式がサポートされます
Unicode 標準付属書 #15 >Unicode 正規化フォーム。
アクセントやその他の装飾を持つ文字は、Unicode で複数の異なる方法でエンコードできます。 たとえば、A-acute という文字を使用します。 Unicode では、これは 1 文字 ("構成済み" 形式) としてエンコードできます。
00C1 LATIN CAPITAL LETTER A WITH ACUTE
または 2 つの独立した文字 ("分解" 形式):
0041 LATIN CAPITAL LETTER A
0301 COMBINING ACUTE ACCENT
ただし、プログラムのユーザーには、これらのシーケンスの両方を同じ "ユーザー レベル" 文字 "A with acute accent" として扱う必要があります。 テキストを検索または比較するときは、これら 2 つのシーケンスが同等に扱われるようにする必要があります。 さらに、複数のアクセントを持つ文字を処理する必要があります。 文字の組み合わせのアクセントの順序が重要な場合もあれば、異なる順序のアクセント シーケンスが実際に等しい場合もあります。
同様に、文字列 "ffi" は 3 つの個別の文字としてエンコードできます。
0066 LATIN SMALL LETTER F
0066 LATIN SMALL LETTER F
0069 LATIN SMALL LETTER I
または単一文字として
FB03 LATIN SMALL LIGATURE FFI
ffi 合字は別個のセマンティック文字ではなく、厳密に言えば Unicode ではまったく使用できませんが、既に提供されている既存の文字セットとの互換性のために含まれていました。 Unicode 標準では、対応するセマンティック文字に "互換性" 分解を与えることで、このような文字を識別します。 並べ替えや検索では、多くの場合、これらのマッピングを使用する必要があります。
normalize は、上記の最初の例に示すように、テキストを正規の構成および分解された形式に変換することで、これらの問題を解決するのに役立ちます。 さらに、互換性の分解を実行して、互換性文字を同等の文字と同じように扱うことができます。 最後に、 normalize はアクセントを適切な正規の順序に並べ替え、アクセントの並べ替えを自分で心配する必要がないようにします。
フォーム FCD "Fast C または D" も照合順序用に設計されています。 これにより、"正規のクロージャ" の下で動作するアルゴリズム (照合順序など) で必ずしも正規化されていない文字列を処理できます。つまり、事前に計算された文字とその分解された文字は同じように扱われます。
表現の一意性を提供しないため、正規化形式ではありません。 複数の文字列は正規に等しい (NFD は同じ) 場合があり、すべて同一でないと FCD に準拠している可能性があります。
フォームは、"生分解" (各文字の再帰的な正規分解) によって、正規順序付けされた文字列になるように定義されます。 つまり、事前計算済み文字は、分解に正規の並べ替えが必要ない限り許可されます。
照合順序のようなプロセスの利点は、すべての NFD テキストとほとんどの NFC テキスト (および多くの正規化されていないテキスト) が FCD に既に準拠しており、このようなプロセスに対して正規化 (NFD) する必要がないということです。 FCD クイック チェックでは、実際にはほとんどの文字列に対して YES が返されます。
normalize(FCD) は NFD で実装できます。
FCD の詳細については、Unicode テクニカル ノート #5 (アプリケーションでの正規等価性) を参照してください。 http://www.unicode.org/notes/tn5/#FCD
コレーター オブジェクトの正規化が有効になっている場合、ICU 照合順序は NFD または FCD の正規化を自動的に実行します。 照合順序や文字列検索以外に、正規化された文字列は、文字列の等価性の比較、音訳/文字起こし、一意の表現などに役立ちます。
W3C では通常、NFC でテキストを交換することをお勧めします。 また、ほとんどの従来の文字エンコーディングでは、事前計算済みのフォームのみが使用され、多くの場合、単独で結合マークをエンコードしないことにも注意してください。 このような文字エンコードに変換するには、Unicode テキストを NFC に正規化する必要があります。 その他の使用例については、Unicode 標準付属書を参照してください。
注: Normalizer クラスには、反復正規化のための API も用意されています。 setIndex() と getIndex() は基になる Unicode 入力テキストのインデックスを参照しますが、next() メソッドと previous() メソッドは正規化された出力の文字を反復処理します。 つまり、next() と previous() によって返される文字と、setIndex() と getIndex() に渡されて返されるインデックスの間に、必ずしも一対一の対応が存在するとは限りません。 このため、Normalizer は CharacterIterator インターフェイスを実装しません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
フィールド
| 名前 | 説明 |
|---|---|
| CompareCodePointOrder |
古い.
比較のオプション ビット: コード単位の順序ではなく、コード ポイントの順序で文字列を比較します。 |
| CompareIgnoreCase |
古い.
比較のオプション ビット: 大文字と小文字を区別しない比較を実行します。 |
| FoldCaseDefault |
古い.
比較のオプション ビット: 大文字と小文字を区別して文字列を比較する |
| FoldCaseExcludeSpecialI |
古い.
ケース フォールディングのオプション値: CaseFolding で提供されるマッピングの変更されたセットを使用します。 |
| InputIsFcd |
古い.
比較のオプション ビット: 両方の入力文字列が FCD 条件を満たしていると見なされます。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniPeerMembers |
以前の Unicode 正規化 API。 |
| Maybe |
以前の Unicode 正規化 API。 |
| No |
以前の Unicode 正規化 API。 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| Yes |
以前の Unicode 正規化 API。 |
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
この |
| Compare(Char[], Char[], NormalizerCompareOptions) |
2 つの文字列を比較して正規の等価性を確認します。 |
| Compare(Char[], Int32, Int32, Char[], Int32, Int32, NormalizerCompareOptions) |
2 つの文字列を比較して正規の等価性を確認します。 |
| Compare(Int32, Int32, NormalizerCompareOptions) |
バッファーを割り当てずに実装を高速化できる便利なメソッド。 |
| Compare(Int32, String, NormalizerCompareOptions) |
バッファーを割り当てずに実装を高速化できる便利なメソッド。 |
| Compare(String, String, NormalizerCompareOptions) |
2 つの文字列を比較して正規の等価性を確認します。 |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
このマネージド ピアが破棄されたことを相互運用ランタイムに通知します。 (継承元 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
別のマネージド参照によって保持されない限り、このJavaピアを解放します。 (継承元 Object) |
| IJavaPeerable.Finalized() |
このマネージド ピアが終了したことを相互運用ランタイムに通知します。 (継承元 Object) |
| IJavaPeerable.JniManagedPeerState |
このマネージド ピアとその JNI 参照の間の関係を記述する状態を取得します。 (継承元 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
このJava ピアの相互運用 ID ハッシュ コードを設定します。 (継承元 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
このJava ピアのマネージド ピアと JNI ピアの状態を設定します。 (継承元 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
このマネージド ピアで使用される JNI オブジェクト参照を設定します。 (継承元 Object) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
以前の Unicode 正規化 API。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|