Normalizer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Alte Unicode-Normalisierungs-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
- Vererbung
- Attribute
- Implementiert
Hinweise
Alte Unicode-Normalisierungs-API.
Diese API wurde durch die Normalizer2 Klasse ersetzt und steht nur aus Gründen der Abwärtskompatibilität zur Verfügung. Diese Klasse delegiert einfach an die Normalizer2-Klasse. Es gibt zwei Ausnahmen: Die neue API bietet keinen Ersatz für QuickCheckResult und compare().
normalize Wandelt Unicode-Text in eine gleichwertige durchkomponierte oder dekomponierte Form um, sodass text einfacher sortiert und durchsucht werden kann.
Unicode Standard Anhang Nr. 15 — Unicode Normalisierungsformulare.
Zeichen mit Akzenten oder anderen Schmücken können in Unicode auf verschiedene Weise codiert werden. Nehmen Sie z. B. das Zeichen A-akut. In Unicode kann dies als einzelnes Zeichen (das "zusammengesetzte" Formular) codiert werden:
00C1 LATIN CAPITAL LETTER A WITH ACUTE
oder als zwei separate Zeichen (das Formular "dekompiliert"):
0041 LATIN CAPITAL LETTER A
0301 COMBINING ACUTE ACCENT
Für einen Benutzer Ihres Programms sollten diese beiden Sequenzen jedoch als das gleiche "Benutzerebene"-Zeichen "A mit akutem Akzent" behandelt werden. Wenn Sie Text suchen oder vergleichen, müssen Sie sicherstellen, dass diese beiden Sequenzen gleichwertig behandelt werden. Darüber hinaus müssen Sie Zeichen mit mehr als einem Akzent behandeln. Manchmal ist die Reihenfolge der kombinierten Akzente eines Zeichens signifikant, während in anderen Fällen Akzentabfolgen in unterschiedlichen Reihenfolgen wirklich gleichwertig sind.
Ebenso kann die Zeichenfolge "ffi" als drei separate Buchstaben codiert werden:
0066 LATIN SMALL LETTER F
0066 LATIN SMALL LETTER F
0069 LATIN SMALL LETTER I
oder als einzelnes Zeichen
FB03 LATIN SMALL LIGATURE FFI
Die ffi-Ligatur ist kein unterschiedliches semantisches Zeichen, und genau genommen sollte es sich gar nicht in Unicode befinden, aber es wurde zur Kompatibilität mit vorhandenen Zeichensätzen aufgenommen, die es bereits bereitgestellt haben. Der Unicode-Standard identifiziert solche Zeichen, indem sie "Compatibility"-Dekompositionen in die entsprechenden semantischen Zeichen geben. Beim Sortieren und Suchen möchten Sie diese Zuordnungen häufig verwenden.
normalize hilft, diese Probleme zu lösen, indem Text in die kanonischen zusammengesetzten und dekomponierten Formen umgewandelt wird, wie im ersten Beispiel oben gezeigt. Darüber hinaus können Sie kompatibilitätskompositionierungen ausführen, damit Sie Kompatibilitätszeichen wie ihre Entsprechungen behandeln können.
normalize Schließlich ordnen Sie Akzente in die richtige kanonische Reihenfolge um, sodass Sie sich keine Gedanken über die Neuanordnung von Akzenten machen müssen.
Form FCD, "Fast C oder D", ist auch für die Sortierung konzipiert. Sie ermöglicht es, Zeichenfolgen zu bearbeiten, die nicht unbedingt mit einem Algorithmus (wie in der Sortierung) normalisiert werden, der unter "kanonischer Verschluss" funktioniert, d. h., es behandelt vorkompilierte Zeichen und deren dekompilierte Entsprechungen dasselbe.
Es handelt sich nicht um eine Normalisierungsform, da sie nicht für die Eindeutigkeit der Darstellung sorgt. Mehrere Zeichenfolgen können kanonisch gleichwertig sein (ihre NFDs sind identisch) und alle entsprechen FCD, ohne sich selbst identisch zu sein.
Das Formular wird so definiert, dass die "Unformatierung", die rekursive kanonische Analyse jedes Zeichens, eine Zeichenfolge ergeben, die kanonisch geordnet ist. Dies bedeutet, dass vorkompilierte Zeichen zulässig sind, solange ihre Analysen keine kanonische Neuanordnung erfordern.
Der Vorteil für einen Prozess wie die Sortierung besteht darin, dass alle NFD und die meisten NFC-Texte - und viele unnormalisierte Texte - bereits FCD entsprechen und nicht normalisiert (NFD) für einen solchen Prozess sein müssen. Die FCD-Schnellüberprüfung gibt JA für die meisten Zeichenfolgen in der Praxis zurück.
normalize(FCD) kann mit NFD implementiert werden.
Weitere Informationen zu FCD finden Sie unter Unicode Technical Note #5 (Kanonische Äquivalenz in Anwendungen): http://www.unicode.org/notes/tn5/#FCD
Die ICU-Sortierung führt entweder NFD- oder FCD-Normalisierung automatisch aus, wenn die Normalisierung für das Collator-Objekt aktiviert ist. Über die Sortierungs- und Zeichenfolgensuche hinaus können normalisierte Zeichenfolgen für Vergleiche von Zeichenfolgen, Transliteration/Transkription, eindeutige Darstellungen usw. nützlich sein.
Das W3C empfiehlt im Allgemeinen, Texte in NFC auszutauschen. Beachten Sie auch, dass die meisten älteren Zeichencodierungen nur vorkompilierte Formulare verwenden und häufig keine kombinationsfähigen Markierungen selbst codieren. Für die Konvertierung in solche Zeichencodierungen muss der Unicode-Text in NFC normalisiert werden. Weitere Verwendungsbeispiele finden Sie im Unicode-Standard-Anhang.
Hinweis: Die Normalizer-Klasse stellt auch API für iterative Normalisierung bereit. Während "setIndex()" und "getIndex()" auf Indizes im zugrunde liegenden Unicode-Eingabetext verweisen, durchlaufen die Methoden next() und previous() Zeichen in der normalisierten Ausgabe. Dies bedeutet, dass es nicht notwendigerweise eine 1:1-Entsprechung zwischen Zeichen gibt, die von next() und previous() zurückgegeben werden, und den an setIndex() und getIndex() übergebenen Indizes. Aus diesem Grund implementiert Normalizer die CharacterIterator-Schnittstelle nicht.
Java Dokumentation für android.icu.text.Normalizer.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Felder
| Name | Beschreibung |
|---|---|
| CompareCodePointOrder |
Veraltet.
Option bit for compare: Compare strings in code point order instead of code unit order. |
| CompareIgnoreCase |
Veraltet.
Option bit for compare: Perform case-insensitive comparison. |
| FoldCaseDefault |
Veraltet.
Option bit for compare: Case sensitively compare the strings |
| FoldCaseExcludeSpecialI |
Veraltet.
Optionswert für die Fallfaltung: Verwenden Sie den geänderten Satz von Zuordnungen, die in CaseFolding bereitgestellt werden. |
| InputIsFcd |
Veraltet.
Option bit for compare: Beide Eingabezeichenfolgen werden angenommen, um FCD-Bedingungen zu erfüllen. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| JniIdentityHashCode |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| JniPeerMembers |
Alte Unicode-Normalisierungs-API. |
| Maybe |
Alte Unicode-Normalisierungs-API. |
| No |
Alte Unicode-Normalisierungs-API. |
| PeerReference |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
| ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
| Yes |
Alte Unicode-Normalisierungs-API. |
Methoden
| Name | Beschreibung |
|---|---|
| Clone() |
Klont dieses |
| Compare(Char[], Char[], NormalizerCompareOptions) |
Vergleichen Sie zwei Zeichenfolgen für kanonische Äquivalenz. |
| Compare(Char[], Int32, Int32, Char[], Int32, Int32, NormalizerCompareOptions) |
Vergleichen Sie zwei Zeichenfolgen für kanonische Äquivalenz. |
| Compare(Int32, Int32, NormalizerCompareOptions) |
Convenience-Methode, die eine schnellere Implementierung haben kann, indem Puffer nicht zuordnen. |
| Compare(Int32, String, NormalizerCompareOptions) |
Convenience-Methode, die eine schnellere Implementierung haben kann, indem Puffer nicht zuordnen. |
| Compare(String, String, NormalizerCompareOptions) |
Vergleichen Sie zwei Zeichenfolgen für kanonische Äquivalenz. |
| Dispose() |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| Dispose(Boolean) |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| ToArray<T>() |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnregisterFromRuntime() |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<>< (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| IJavaPeerable.Finalized() |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| IJavaPeerable.JniManagedPeerState |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Alte Unicode-Normalisierungs-API. (Geerbt von Object) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Alte Unicode-Normalisierungs-API. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |