CharUnicodeInfo Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte informace o znaku Unicode. Tato třída se nemůže dědit.
public ref class CharUnicodeInfo abstract sealed
public ref class CharUnicodeInfo sealed
public static class CharUnicodeInfo
public sealed class CharUnicodeInfo
type CharUnicodeInfo = class
Public Class CharUnicodeInfo
Public NotInheritable Class CharUnicodeInfo
- Dědičnost
-
CharUnicodeInfo
Příklady
Následující příklad kódu ukazuje hodnoty vrácené každou metodou pro různé typy znaků.
using System;
using System.Globalization;
public class SamplesCharUnicodeInfo {
public static void Main() {
Console.WriteLine( " c Num Dig Dec UnicodeCategory" );
Console.Write( "U+0061 LATIN SMALL LETTER A " );
PrintProperties( 'a' );
Console.Write( "U+0393 GREEK CAPITAL LETTER GAMMA " );
PrintProperties( '\u0393' );
Console.Write( "U+0039 DIGIT NINE " );
PrintProperties( '9' );
Console.Write( "U+00B2 SUPERSCRIPT TWO " );
PrintProperties( '\u00B2' );
Console.Write( "U+00BC VULGAR FRACTION ONE QUARTER " );
PrintProperties( '\u00BC' );
Console.Write( "U+0BEF TAMIL DIGIT NINE " );
PrintProperties( '\u0BEF' );
Console.Write( "U+0BF0 TAMIL NUMBER TEN " );
PrintProperties( '\u0BF0' );
Console.Write( "U+0F33 TIBETAN DIGIT HALF ZERO " );
PrintProperties( '\u0F33' );
Console.Write( "U+2788 CIRCLED SANS-SERIF DIGIT NINE " );
PrintProperties( '\u2788' );
}
public static void PrintProperties( char c ) {
Console.Write( " {0,-3}", c );
Console.Write( " {0,-5}", CharUnicodeInfo.GetNumericValue( c ) );
Console.Write( " {0,-5}", CharUnicodeInfo.GetDigitValue( c ) );
Console.Write( " {0,-5}", CharUnicodeInfo.GetDecimalDigitValue( c ) );
Console.WriteLine( "{0}", CharUnicodeInfo.GetUnicodeCategory( c ) );
}
}
/*
This code produces the following output. Some characters might not display at the console.
c Num Dig Dec UnicodeCategory
U+0061 LATIN SMALL LETTER A a -1 -1 -1 LowercaseLetter
U+0393 GREEK CAPITAL LETTER GAMMA Γ -1 -1 -1 UppercaseLetter
U+0039 DIGIT NINE 9 9 9 9 DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO ² 2 2 -1 OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER ¼ 0.25 -1 -1 OtherNumber
U+0BEF TAMIL DIGIT NINE ௯ 9 9 9 DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN ௰ 10 -1 -1 OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO ༳ -0.5 -1 -1 OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE ➈ 9 9 -1 OtherNumber
*/
Imports System.Globalization
Public Class SamplesCharUnicodeInfo
Public Shared Sub Main()
Console.WriteLine(" c Num Dig Dec UnicodeCategory")
Console.Write("U+0061 LATIN SMALL LETTER A ")
PrintProperties("a"c)
Console.Write("U+0393 GREEK CAPITAL LETTER GAMMA ")
PrintProperties(ChrW(&H0393))
Console.Write("U+0039 DIGIT NINE ")
PrintProperties("9"c)
Console.Write("U+00B2 SUPERSCRIPT TWO ")
PrintProperties(ChrW(&H00B2))
Console.Write("U+00BC VULGAR FRACTION ONE QUARTER ")
PrintProperties(ChrW(&H00BC))
Console.Write("U+0BEF TAMIL DIGIT NINE ")
PrintProperties(ChrW(&H0BEF))
Console.Write("U+0BF0 TAMIL NUMBER TEN ")
PrintProperties(ChrW(&H0BF0))
Console.Write("U+0F33 TIBETAN DIGIT HALF ZERO ")
PrintProperties(ChrW(&H0F33))
Console.Write("U+2788 CIRCLED SANS-SERIF DIGIT NINE ")
PrintProperties(ChrW(&H2788))
End Sub
Public Shared Sub PrintProperties(c As Char)
Console.Write(" {0,-3}", c)
Console.Write(" {0,-5}", CharUnicodeInfo.GetNumericValue(c))
Console.Write(" {0,-5}", CharUnicodeInfo.GetDigitValue(c))
Console.Write(" {0,-5}", CharUnicodeInfo.GetDecimalDigitValue(c))
Console.WriteLine("{0}", CharUnicodeInfo.GetUnicodeCategory(c))
End Sub
End Class
'This code produces the following output. Some characters might not display at the console.
'
' c Num Dig Dec UnicodeCategory
'U+0061 LATIN SMALL LETTER A a -1 -1 -1 LowercaseLetter
'U+0393 GREEK CAPITAL LETTER GAMMA Γ -1 -1 -1 UppercaseLetter
'U+0039 DIGIT NINE 9 9 9 9 DecimalDigitNumber
'U+00B2 SUPERSCRIPT TWO ² 2 2 -1 OtherNumber
'U+00BC VULGAR FRACTION ONE QUARTER ¼ 0.25 -1 -1 OtherNumber
'U+0BEF TAMIL DIGIT NINE ௯ 9 9 9 DecimalDigitNumber
'U+0BF0 TAMIL NUMBER TEN ௰ 10 -1 -1 OtherNumber
'U+0F33 TIBETAN DIGIT HALF ZERO ༳ -0.5 -1 -1 OtherNumber
'U+2788 CIRCLED SANS-SERIF DIGIT NINE ➈ 9 9 -1 OtherNumber
Poznámky
Standard Unicode definuje řadu kategorií znaků Unicode. Znak může být například zařazen do kategorií jako velké písmeno, malé písmeno, desetinné číslo, číslo písmene, oddělovač odstavce, matematický symbol nebo symbol měny. Aplikace může použít kategorii znaků k řízení operací založených na řetězcích, jako je analýza nebo extrahování podřetězců pomocí regulárních výrazů. Výčet UnicodeCategory definuje možné kategorie znaků.
CharUnicodeInfo Pomocí třídy získejte UnicodeCategory hodnotu pro určitý znak. Třída CharUnicodeInfo definuje metody, které vracejí následující hodnoty znaků Unicode:
Konkrétní kategorie, do které patří znak nebo náhradní dvojice. Vrácená hodnota je členem výčtu UnicodeCategory .
Číselná hodnota Platí pouze pro číselné znaky, včetně zlomků, dolních indexů, horních indexů, římských číslic, numerátorů měny, obkřeskovaných čísel a číslic specifických pro skripty.
Hodnota číslic. Platí pro číselné znaky, které lze kombinovat s jinými číselnými znaky, aby představovaly celé číslo v systému číslování.
Desetinná číslice. Platí pouze pro znaky, které představují desetinné číslice v systému desetinných míst (základ 10). Desetinná číslice může být jedna z deseti číslic od nuly do devíti. Tyto znaky jsou členy UnicodeCategory.DecimalDigitNumber kategorie.
Kromě toho se třída CharUnicodeInfo používá interně pomocí řady dalších typů .NET a metod, které spoléhají na klasifikaci znaků. Tady jsou některé z nich:
Třída StringInfo , která pracuje s textovými prvky namísto jednoho znaku v řetězci.
Přetížení Char.GetUnicodeCategory metody, která určuje kategorii, do které patří znak nebo náhradní dvojice.
Třídy character rozpoznané modulem regulárních výrazů Regex .NET.
Při použití této třídy ve vašich aplikacích mějte na paměti následující aspekty programování pro použití Char typu. Typ může být obtížně použitelný a řetězce jsou obecně vhodnější pro reprezentaci lingvistického obsahu.
Objekt Char neodpovídá vždy jednomu znaku. Char I když typ představuje jednu 16bitovou hodnotu, některé znaky (například clustery grafů a náhradní páry) se skládají ze dvou nebo více jednotek kódu UTF-16. Další informace naleznete v tématu "Char Objects and Unicode Characters" ve String třídě.
Pojem "znak" je také flexibilní. Znak je často považován za glyf, ale mnoho glyfů vyžaduje více bodů kódu. Například ä může být reprezentována dvěma body kódu ("a" plus U+0308, což je kombinace diaeréz), nebo jedním bodem kódu ("ä" nebo U+00A4). Některé jazyky mají mnoho písmen, znaků a glyfů, které vyžadují více bodů kódu, což může způsobit nejasnost v reprezentaci lingvistického obsahu. Například existuje ΰ (U+03B0, řecké malé písmeno upsilon s dialytika a tonos), ale neexistuje žádné ekvivalentní velké písmeno. Když takovou hodnotu načtete jednoduše, načte se původní hodnota.
Poznámky pro volající
Rozpoznané znaky a konkrétní kategorie, do kterých patří, jsou definovány standardem Unicode a můžou se změnit z jedné verze standardu Unicode na jinou. Kategorizace znaků v konkrétní verzi .NET Framework je založená na jedné verzi standardu Unicode bez ohledu na základní operační systém, na kterém je spuštěna .NET Framework. Následující tabulka uvádí verze .NET Framework, protože .NET Framework 4 a verze standardu Unicode používané ke klasifikaci znaků.
| verze .NET Frameworku | Verze Unicode Standard |
|---|---|
| .NET Framework 4 | 5.0.0 |
| .NET Framework 4.5 | 5.0.0 |
| .NET Framework 4.5.1 | 5.0.0 |
| .NET Framework 4.5.2 | 5.0.0 |
| .NET Framework 4.6 | 6.3.0 |
| .NET Framework 4.6.1 | 6.3.0 |
| .NET Framework 4.6.2 | 8.0.0 |
Každá verze standardu Unicode obsahuje informace o změnách databáze znaků Unicode od předchozí verze. Znaková databáze Unicode je používána CharUnicodeInfo třídou pro kategorizaci znaků.
Metody
| Name | Description |
|---|---|
| GetDecimalDigitValue(Char) |
Získá desetinnou číslici hodnotu zadaného číselného znaku. |
| GetDecimalDigitValue(String, Int32) |
Získá desetinnou číslici číselného znaku v zadaném indexu zadaného řetězce. |
| GetDigitValue(Char) |
Získá číslice hodnotu zadaného číselného znaku. |
| GetDigitValue(String, Int32) |
Získá číslice hodnotu číselného znaku v zadaném indexu zadaného řetězce. |
| GetNumericValue(Char) |
Získá číselnou hodnotu přidruženou k zadanému znaku. |
| GetNumericValue(String, Int32) |
Získá číselnou hodnotu přidruženou ke znaku v zadaném indexu zadaného řetězce. |
| GetUnicodeCategory(Char) |
Získá unicode kategorie zadaného znaku. |
| GetUnicodeCategory(Int32) |
Získá unicode kategorie zadaného znaku. |
| GetUnicodeCategory(String, Int32) |
Získá Unicode kategorie znaku v zadaném indexu zadaného řetězce. |