CharUnicodeInfo Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar information om ett Unicode-tecken. Det går inte att ärva den här klassen.
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
- Arv
-
CharUnicodeInfo
Exempel
I följande kodexempel visas de värden som returneras av varje metod för olika typer av tecken.
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
Kommentarer
Unicode Standard definierar ett antal Unicode-teckenkategorier. Ett tecken kan till exempel kategoriseras som en versal, en gemen bokstav, ett decimaltal, ett bokstavsnummer, en styckeavgränsare, en matematisk symbol eller en valutasymbol. Ditt program kan använda teckenkategorin för att styra strängbaserade åtgärder, till exempel parsning eller extrahering av delsträngar med reguljära uttryck. Uppräkningen UnicodeCategory definierar de möjliga teckenkategorierna.
CharUnicodeInfo Använd klassen för att hämta UnicodeCategory värdet för ett visst tecken. Klassen CharUnicodeInfo definierar metoder som returnerar följande Unicode-teckenvärden:
Den specifika kategori som ett tecken eller surrogatpar tillhör. Värdet som returneras är medlem i UnicodeCategory uppräkningen.
Numeriskt värde. Gäller endast för numeriska tecken, inklusive bråktal, nedsänkta, upphöjda, romerska siffror, valutatäljare, omgivna tal och skriptspecifika siffror.
Siffervärde. Gäller för numeriska tecken som kan kombineras med andra numeriska tecken för att representera ett heltal i ett numreringssystem.
Decimaltalsvärde. Gäller endast för tecken som representerar decimaltal i decimalsystemet (bas 10). En decimal kan vara en av tio siffror, från noll till nio. Dessa tecken är medlemmar i UnicodeCategory.DecimalDigitNumber kategorin.
Dessutom används klassen CharUnicodeInfo internt av ett antal andra .NET typer och metoder som är beroende av teckenklassificering. Dessa inkluderar:
Klassen StringInfo , som fungerar med textelement i stället för enkla tecken i en sträng.
Överlagringarna av Char.GetUnicodeCategory metoden, som avgör vilken kategori ett tecken eller surrogatpar tillhör.
Klasserna character som identifieras av Regex, .NET motor för reguljära uttryck.
När du använder den här klassen i dina program bör du tänka på följande programmeringsöverväganden för att använda typen Char . Typen kan vara svår att använda, och strängar är vanligtvis att föredra för att representera språkligt innehåll.
Ett Char objekt motsvarar inte alltid ett enda tecken. Char Även om typen representerar ett enda 16-bitarsvärde består vissa tecken (till exempel grapheme-kluster och surrogatpar) av två eller flera UTF-16-kodenheter. Mer information finns i "Teckenobjekt och Unicode-tecken" i String klassen.
Begreppet "karaktär" är också flexibelt. Ett tecken betraktas ofta som en glyph, men många glyfer kräver flera kodpunkter. Till exempel kan ä representeras antingen av två kodpunkter ("a" plus U+0308, som är den kombinerande diaeresisen), eller av en enda kodpunkt ("ä" eller U+00A4). Vissa språk har många bokstäver, tecken och tecken som kräver flera kodpunkter, vilket kan orsaka förvirring i språklig innehållsrepresentation. Det finns till exempel en ΰ (U+03B0, grekisk liten bokstav upsilon med dialytika och tonos), men det finns ingen motsvarande versal bokstav. Om du tar upp ett sådant värde hämtas det ursprungliga värdet.
Anteckningar till anropare
Identifierade tecken och de specifika kategorier som de tillhör definieras av Unicode-standarden och kan ändras från en version av Unicode Standard till en annan. Kategorisering av tecken i en viss version av .NET Framework baseras på en enda version av Unicode Standard, oavsett vilket underliggande operativsystem som .NET Framework körs på. I följande tabell visas versioner av .NET Framework sedan .NET Framework 4 och versionerna av Unicode Standard som används för att klassificera tecken.
| .NET Framework-version | Unicode Standard-version |
|---|---|
| .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 |
Varje version av Unicode-standarden innehåller information om ändringar i Unicode-teckendatabasen sedan den tidigare versionen. Unicode-teckendatabasen CharUnicodeInfo används av klassen för att kategorisera tecken.
Metoder
| Name | Description |
|---|---|
| GetDecimalDigitValue(Char) |
Hämtar decimaltecknet för det angivna numeriska tecknet. |
| GetDecimalDigitValue(String, Int32) |
Hämtar decimaltecknets värde för det numeriska tecknet vid det angivna indexet för den angivna strängen. |
| GetDigitValue(Char) |
Hämtar siffervärdet för det angivna numeriska tecknet. |
| GetDigitValue(String, Int32) |
Hämtar siffervärdet för det numeriska tecknet vid det angivna indexet för den angivna strängen. |
| GetNumericValue(Char) |
Hämtar det numeriska värdet som är associerat med det angivna tecknet. |
| GetNumericValue(String, Int32) |
Hämtar det numeriska värdet som är associerat med tecknet i det angivna indexet för den angivna strängen. |
| GetUnicodeCategory(Char) |
Hämtar Unicode-kategorin för det angivna tecknet. |
| GetUnicodeCategory(Int32) |
Hämtar Unicode-kategorin för det angivna tecknet. |
| GetUnicodeCategory(String, Int32) |
Hämtar Unicode-kategorin för tecknet i det angivna indexet för den angivna strängen. |