CharUnicodeInfo 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检索有关 Unicode 字符的信息。 此类不能被继承。
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
- 继承
-
CharUnicodeInfo
示例
下面的代码示例显示了每种方法针对不同类型的字符返回的值。
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
注解
Unicode 标准定义许多 Unicode 字符类别。 例如,字符可能分类为大写字母、小写字母、小写字母、小数位数、字母数字、段落分隔符、数学符号或货币符号。 应用程序可以使用字符类别来管理基于字符串的操作,例如使用正则表达式分析或提取子字符串。 UnicodeCategory枚举定义可能的字符类别。
使用 CharUnicodeInfo 类获取 UnicodeCategory 特定字符的值。 该 CharUnicodeInfo 类定义返回以下 Unicode 字符值的方法:
字符或代理项对所属的特定类别。 返回的值是枚举的成员 UnicodeCategory 。
数值。 仅适用于数字字符,包括分数、下标、上标、罗马数字、货币分子、包围数字和特定于脚本的数字。
数字值。 适用于可与其他数字字符组合以表示数字系统中的整数的数字字符。
十进制数字值。 仅适用于表示十进制 (base 10) 系统中的十进制数字的字符。 十进制数字可以是十位数之一,从零到 9。 这些字符是类别的成员 UnicodeCategory.DecimalDigitNumber 。
此外,CharUnicodeInfo 类由依赖于字符分类的其他许多.NET类型和方法在内部使用。 这些包括:
该 StringInfo 类适用于文本元素,而不是字符串中的单个字符。
方法的 Char.GetUnicodeCategory 重载,用于确定字符或代理项对所属的类别。
character 类由 Regex 识别,.NET的正则表达式引擎。
在应用程序中使用此类时,请记住以下使用类型的 Char 编程注意事项。 该类型可能难以使用,字符串通常更适合表示语言内容。
对象 Char 并不总是对应于单个字符。 尽管该 Char 类型表示单个 16 位值,但某些字符(如 grapheme 群集和代理项对)包含两个或更多个 UTF-16 代码单元。 有关详细信息,请参阅类中的 String “Char 对象和 Unicode 字符”。
“字符”的概念也是灵活的。 字符通常被视为字形,但许多字形需要多个码位。 例如,ä 可以由两个代码点(“a”加 U+0308(即组合分肢)或单个代码点(“ä”或 U+00A4)表示。 某些语言具有许多字母、字符和字形,这些字母、字符和字形需要多个代码点,这可能会导致语言内容表示形式混乱。 例如,有一个 ΰ (U+03B0,带 dialytika 和 tonos 的希腊文小写字母 upsilon),但没有等效的大写字母。 对此类值进行大写只是检索原始值。
调用方说明
识别的字符及其所属的特定类别由 Unicode 标准定义,并且可以从 Unicode 标准的一个版本更改为另一个版本。 特定版本的 .NET Framework 中的字符分类基于 Unicode Standard 的单个版本,而不考虑运行 .NET Framework 的基础操作系统。 下表列出了自 .NET Framework 4 以来的 .NET Framework 版本以及用于对字符进行分类的 Unicode 标准版本。
| .NET Framework 版本 | Unicode 标准版本 |
|---|---|
| .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 框架 4.6.1 | 6.3.0 |
| .NET Framework 4.6.2 | 8.0.0 |
Unicode 标准的每个版本都包含自以前版本以来对 Unicode 字符数据库的更改的相关信息。 类使用 CharUnicodeInfo Unicode 字符数据库对字符进行分类。
方法
| 名称 | 说明 |
|---|---|
| GetDecimalDigitValue(Char) |
获取指定数值字符的十进制数字值。 |
| GetDecimalDigitValue(String, Int32) |
获取指定字符串的指定索引处数值字符的十进制数字值。 |
| GetDigitValue(Char) |
获取指定数值字符的数字值。 |
| GetDigitValue(String, Int32) |
获取指定字符串的指定索引处的数字字符的数字值。 |
| GetNumericValue(Char) |
获取与指定字符关联的数值。 |
| GetNumericValue(String, Int32) |
获取与指定字符串的指定索引处的字符关联的数值。 |
| GetUnicodeCategory(Char) |
获取指定字符的 Unicode 类别。 |
| GetUnicodeCategory(Int32) |
获取指定字符的 Unicode 类别。 |
| GetUnicodeCategory(String, Int32) |
获取指定字符串的指定索引处字符的 Unicode 类别。 |