CharUnicodeInfo.GetUnicodeCategory Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает категорию Юникода символа Юникода.
Перегрузки
| Имя | Описание |
|---|---|
| GetUnicodeCategory(Char) |
Возвращает категорию Юникода указанного символа. |
| GetUnicodeCategory(Int32) |
Возвращает категорию Юникода указанного символа. |
| GetUnicodeCategory(String, Int32) |
Возвращает категорию Юникода символа по указанному индексу указанной строки. |
GetUnicodeCategory(Char)
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
Возвращает категорию Юникода указанного символа.
public:
static System::Globalization::UnicodeCategory GetUnicodeCategory(char ch);
public static System.Globalization.UnicodeCategory GetUnicodeCategory(char ch);
static member GetUnicodeCategory : char -> System.Globalization.UnicodeCategory
Public Shared Function GetUnicodeCategory (ch As Char) As UnicodeCategory
Параметры
- ch
- Char
Символ Юникода, для которого требуется получить категорию Юникода.
Возвращаемое значение
UnicodeCategory Значение, указывающее категорию указанного символа.
Примеры
В следующем примере кода показаны значения, возвращаемые каждым методом для разных типов символов.
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
Комментарии
Символы Юникода делятся на категории. Категория символа является одним из его свойств. Например, символ может быть прописной буквой, строчной буквой, десятичным числом, номером буквы, знаком препинания соединителя, математическим символом или символом валюты. Перечисление UnicodeCategory определяет категорию символа Юникода. Дополнительные сведения о символах Юникода см. в стандарте Юникода.
Метод GetUnicodeCategory предполагает, что ch соответствует одному лингвистическому символу и возвращает ее категорию. Это означает, что для суррогатных пар он возвращается UnicodeCategory.Surrogate вместо категории, к которой принадлежит суррогат. Например, алфавит Ugaritic занимает кодовые точки U+10380 до U+1039F. В следующем примере метод используется ConvertFromUtf32 для создания экземпляра строки, представляющей UGARITIC LETTER ALPA (U+10380), которая является первой буквой алфавита Ugaritic. Как показано в выходных данных из примера, метод возвращаетсяIsNumber(Char), false если он передается либо с высоким суррогатом, либо низким суррогатом этого символа.
int utf32 = 0x10380; // UGARITIC LETTER ALPA
string surrogate = Char.ConvertFromUtf32(utf32);
foreach (var ch in surrogate)
Console.WriteLine($"U+{(ushort)ch:X4}: {System.Globalization.CharUnicodeInfo.GetUnicodeCategory(ch):G}");
// The example displays the following output:
// U+D800: Surrogate
// U+DF80: Surrogate
Dim utf32 As Integer = &h10380 ' UGARITIC LETTER ALPA
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For Each ch In surrogate
Console.WriteLine("U+{0:X4}: {1:G}",
Convert.ToUInt16(ch),
System.Globalization.CharUnicodeInfo.GetUnicodeCategory(ch))
Next
' The example displays the following output:
' U+D800: Surrogate
' U+DF80: Surrogate
Обратите внимание, что не всегда возвращает то же CharUnicodeInfo.GetUnicodeCategory значение, что UnicodeCategoryChar.GetUnicodeCategory и метод при передаче определенного символа в качестве параметра. Этот CharUnicodeInfo.GetUnicodeCategory метод предназначен для отражения текущей версии стандарта Юникода. В отличие от этого, хотя Char.GetUnicodeCategory метод обычно отражает текущую версию стандарта Юникода, он может возвращать категорию символов на основе предыдущей версии стандарта или возвращать категорию, которая отличается от текущего стандарта для сохранения обратной совместимости.
См. также раздел
Применяется к
GetUnicodeCategory(Int32)
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
Возвращает категорию Юникода указанного символа.
public:
static System::Globalization::UnicodeCategory GetUnicodeCategory(int codePoint);
public static System.Globalization.UnicodeCategory GetUnicodeCategory(int codePoint);
static member GetUnicodeCategory : int -> System.Globalization.UnicodeCategory
Public Shared Function GetUnicodeCategory (codePoint As Integer) As UnicodeCategory
Параметры
- codePoint
- Int32
Число, представляющее 32-разрядное значение точки кода символа Юникода.
Возвращаемое значение
UnicodeCategory Значение, указывающее категорию указанного символа.
Применяется к
GetUnicodeCategory(String, Int32)
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
- Исходный код:
- CharUnicodeInfo.cs
Возвращает категорию Юникода символа по указанному индексу указанной строки.
public:
static System::Globalization::UnicodeCategory GetUnicodeCategory(System::String ^ s, int index);
public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index);
static member GetUnicodeCategory : string * int -> System.Globalization.UnicodeCategory
Public Shared Function GetUnicodeCategory (s As String, index As Integer) As UnicodeCategory
Параметры
- index
- Int32
Индекс символа Юникода, для которого требуется получить категорию Юникода.
Возвращаемое значение
UnicodeCategory Значение, указывающее категорию символа по указанному индексу указанной строки.
Исключения
s равно null.
index находится за пределами диапазона допустимых индексов в s.
Примеры
В следующем примере кода показаны значения, возвращаемые каждым методом для разных типов символов.
using System;
using System.Globalization;
public class SamplesCharUnicodeInfo {
public static void Main() {
// The String to get information for.
String s = "a9\u0393\u00B2\u00BC\u0BEF\u0BF0\u2788";
Console.WriteLine( "String: {0}", s );
// Print the values for each of the characters in the string.
Console.WriteLine( "index c Num Dig Dec UnicodeCategory" );
for ( int i = 0; i < s.Length; i++ ) {
Console.Write( "{0,-5} {1,-3}", i, s[i] );
Console.Write( " {0,-5}", CharUnicodeInfo.GetNumericValue( s, i ) );
Console.Write( " {0,-5}", CharUnicodeInfo.GetDigitValue( s, i ) );
Console.Write( " {0,-5}", CharUnicodeInfo.GetDecimalDigitValue( s, i ) );
Console.WriteLine( "{0}", CharUnicodeInfo.GetUnicodeCategory( s, i ) );
}
}
}
/*
This code produces the following output. Some characters might not display at the console.
String: a9Γ²¼௯௰➈
index c Num Dig Dec UnicodeCategory
0 a -1 -1 -1 LowercaseLetter
1 9 9 9 9 DecimalDigitNumber
2 Γ -1 -1 -1 UppercaseLetter
3 ² 2 2 -1 OtherNumber
4 ¼ 0.25 -1 -1 OtherNumber
5 ௯ 9 9 9 DecimalDigitNumber
6 ௰ 10 -1 -1 OtherNumber
7 ➈ 9 9 -1 OtherNumber
*/
Imports System.Globalization
Public Class SamplesCharUnicodeInfo
Public Shared Sub Main()
' The String to get information for.
Dim s As [String] = "a9\u0393\u00B2\u00BC\u0BEF\u0BF0\u2788"
Console.WriteLine("String: {0}", s)
' Print the values for each of the characters in the string.
Console.WriteLine("index c Num Dig Dec UnicodeCategory")
Dim i As Integer
For i = 0 To s.Length - 1
Console.Write("{0,-5} {1,-3}", i, s(i))
Console.Write(" {0,-5}", CharUnicodeInfo.GetNumericValue(s, i))
Console.Write(" {0,-5}", CharUnicodeInfo.GetDigitValue(s, i))
Console.Write(" {0,-5}", CharUnicodeInfo.GetDecimalDigitValue(s, i))
Console.WriteLine("{0}", CharUnicodeInfo.GetUnicodeCategory(s, i))
Next i
End Sub
End Class
'This code produces the following output. Some characters might not display at the console.
'
'String: a9Γ²¼௯௰➈
'index c Num Dig Dec UnicodeCategory
'0 a -1 -1 -1 LowercaseLetter
'1 9 9 9 9 DecimalDigitNumber
'2 Γ -1 -1 -1 UppercaseLetter
'3 ² 2 2 -1 OtherNumber
'4 ¼ 0.25 -1 -1 OtherNumber
'5 ௯ 9 9 9 DecimalDigitNumber
'6 ௰ 10 -1 -1 OtherNumber
'7 ➈ 9 9 -1 OtherNumber
Комментарии
Символы Юникода делятся на категории. Категория символа является одним из его свойств. Например, символ может быть прописной буквой, строчной буквой, десятичным числом, номером буквы, знаком препинания соединителя, математическим символом или символом валюты. Перечисление UnicodeCategory определяет категорию символа Юникода. Дополнительные сведения о символах Юникода см. в стандарте Юникода.
Char Если объект на позиции index является первым символом допустимой суррогатной пары, GetUnicodeCategory(String, Int32) метод возвращает категорию Юникода суррогатной пары вместо возвратаUnicodeCategory.Surrogate. Например, алфавит Ugaritic занимает кодовые точки U+10380 до U+1039F. В следующем примере метод используется ConvertFromUtf32 для создания экземпляра строки, представляющей UGARITIC LETTER ALPA (U+10380), которая является первой буквой алфавита Ugaritic. Как показано в выходных данных из примера, метод возвращаетсяGetUnicodeCategory(String, Int32), UnicodeCategory.OtherLetter если он передает высокий суррогат этого символа, который указывает на то, что он считает суррогатную пару. Тем не менее, если он передается низкой суррогатной, он считает только низкий суррогат в изоляции и возвращается UnicodeCategory.Surrogate.
int utf32 = 0x10380; // UGARITIC LETTER ALPA
string surrogate = Char.ConvertFromUtf32(utf32);
for (int ctr = 0; ctr < surrogate.Length; ctr++)
Console.WriteLine($"U+{(ushort)surrogate[ctr]:X4}: {System.Globalization.CharUnicodeInfo.GetUnicodeCategory(surrogate, ctr):G}");
// The example displays the following output:
// U+D800: OtherLetter
// U+DF80: Surrogate
Dim utf32 As Integer = &h10380 ' UGARITIC LETTER ALPA
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For ctr As Integer = 0 To surrogate.Length - 1
Console.WriteLine("U+{0:X4}: {1:G}",
Convert.ToUInt16(surrogate(ctr)),
System.Globalization.CharUnicodeInfo.GetUnicodeCategory(surrogate, ctr))
Next
' The example displays the following output:
' U+D800: OtherLetter
' U+DF80: Surrogate
Обратите внимание, что метод не всегда возвращает то же CharUnicodeInfo.GetUnicodeCategory значение, что UnicodeCategoryChar.GetUnicodeCategory и метод при передаче определенного символа в качестве параметра. Этот CharUnicodeInfo.GetUnicodeCategory метод предназначен для отражения текущей версии стандарта Юникода. В отличие от этого, хотя Char.GetUnicodeCategory метод обычно отражает текущую версию стандарта Юникода, он может возвращать категорию символов на основе предыдущей версии стандарта или возвращать категорию, которая отличается от текущего стандарта для сохранения обратной совместимости.