UnicodeCategory 枚举

定义

定义字符的 Unicode 类别。

public enum class UnicodeCategory
public enum UnicodeCategory
[System.Serializable]
public enum UnicodeCategory
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum UnicodeCategory
type UnicodeCategory = 
[<System.Serializable>]
type UnicodeCategory = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type UnicodeCategory = 
Public Enum UnicodeCategory
继承
UnicodeCategory
属性

字段

ClosePunctuation 21

成对的标点符号(例如括号、方括号和大括号)的结束字符。 由 Unicode 代码“Pe”(标点,结束)表示。 值为 21。

ConnectorPunctuation 18

连接两个字符的连接符标点字符。 由 Unicode 代码“Pc”(标点,连接符)表示。 值为 18。

Control 14

控制代码字符,其 Unicode 值为 U+007F,或者属于 U+0000 到 U+001F 或 U+0080 到 U+009F 的范围内。 由 Unicode 代码“Cc”(其他,控制)表示。 值为 14。

CurrencySymbol 26

货币符号字符。 由 Unicode 代码“Sc”(符号,货币)表示。 值为 26。

DashPunctuation 19

短划线或连字符字符。 由 Unicode 代码“Pd”(标点,短划线)表示。 值为 19。

DecimalDigitNumber 8

十进制数字字符,即表示 0 到 9 范围内的整数的字符。 由 Unicode 代码“Nd”(数字,十进制数字)表示。 值为 8。

EnclosingMark 7

封闭符号字符,它是将基字符前面的所有字符(包括基字符)括起来的不占位字符。 由 Unicode 代码“Me”(符号,封闭)表示。 值为 7。

FinalQuotePunctuation 23

右引号或后引号字符。 由 Unicode 代码“Pf”(标点,后引号)表示。 值为 23。

Format 15

格式字符,它影响文本的布局或文本处理操作,但通常不呈现。 由 Unicode 代码“Cf”(其他,格式)表示。 值为 15。

InitialQuotePunctuation 22

左引号或前引号字符。 由 Unicode 代码“Pi”(标点,前引号)表示。 值为 22。

LetterNumber 9

由字母表示的数字,而不是十进制数字,例如,罗马数字 5 由字母“V”表示。 此指示符由 Unicode 代码“Nl”(数字,字母)表示。 值为 9。

LineSeparator 12

用于分隔文本各行的字符。 由 Unicode 代码“Zl”(分隔符,行)表示。 值为 12。

LowercaseLetter 1

小写字母。 由 Unicode 代码“Ll”(字母,小写)表示。 值为 1。

MathSymbol 25

数学符号字符,如“+”或“=”。 由 Unicode 代码“Sm”(符号,数学)表示。 值为 25。

ModifierLetter 3

修饰符字母字符,它是独立式的间距字符,指示前面字母的修改。 由 Unicode 代码“Lm”(字母,修饰符)表示。 值为 3。

ModifierSymbol 27

修饰符符号字符,它指示环绕字符的修改。 例如,分数斜线号指示其左侧的数字为分子,右侧的数字为分母。 此指示符由 Unicode 代码“Sk”(符号,修饰符)表示。 值为 27。

NonSpacingMark 5

指示基字符的修改的不占位字符。 由 Unicode 代码“Mn”(符号,不占位)表示。 值为 5。

OpenPunctuation 20

成对的标点符号(例如括号、方括号和大括号)的开始字符。 由 Unicode 代码“Ps”(标点,开始)表示。 值为 20。

OtherLetter 4

不属于大写字母、小写字母、词首字母大写或修饰符字母的字母。 由 Unicode 代码“Lo”(字母,其他)表示。 值为 4。

OtherNotAssigned 29

未分配给任何 Unicode 类别的字符。 由 Unicode 代码“Cn”(其他,未分配)表示。 值为 29。

OtherNumber 10

既不是十进制数字也不是字母数字的数字,例如分数 1/2。 此指示符由 Unicode 代码“No”(数字,其他)表示。 值为 10。

OtherPunctuation 24

不属于连接符、短划线、开始标点、结束标点、前引号或后引号的标点字符。 由 Unicode 代码“Po”(标点,其他)表示。 值为 24。

OtherSymbol 28

不属于数学符号、货币符号或修饰符符号的符号字符。 由 Unicode 代码“So”(符号,其他)表示。 值为 28。

ParagraphSeparator 13

用于分隔段落的字符。 由 Unicode 代码“Zp”(分隔符,段落)表示。 值为 13。

PrivateUse 17

专用字符,其 Unicode 值在在 U+E000 到 U+F8FF 的范围内。 由 Unicode 代码“Co”(其他,专用)表示。 值为 17。

SpaceSeparator 11

没有标志符号但不属于控制或格式字符的空格字符。 由 Unicode 代码“Zs”(分隔符,空格)表示。 值为 11。

SpacingCombiningMark 6

间隔字符,它指示基字符的修改并影响基字符的标志符号的宽度。 由 Unicode 代码“Mc”(符号,间隔组合)表示。 值为 6。

Surrogate 16

高代理项或低代理项字符。 代理项代码值在 U+D800 到 U+DFFF 的范围内。 由 Unicode 代码“Cs”(其他,代理项)表示。 值为 16。

TitlecaseLetter 2

词首字母大写的字母。 由 Unicode 代码“Lt”(字母,词首字母大写)表示。 值为 2。

UppercaseLetter 0

大写字母。 由 Unicode 代码“Lu”(字母,大写)表示。 值为 0。

示例

以下示例显示 UppercaseLetter 类别中的字符及其对应的代码点。 可以通过将 UppercaseLetter 替换为变量赋值 category 中感兴趣的类别来修改该示例以显示任何其他类别中的字母。 请注意,某些类别的输出可能非常广泛。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      int ctr = 0;
      UnicodeCategory category = UnicodeCategory.UppercaseLetter;

      for (ushort codePoint = 0; codePoint < ushort.MaxValue; codePoint++) {
         Char ch = (char)codePoint;

         if (CharUnicodeInfo.GetUnicodeCategory(ch) == category) {
            if (ctr % 5 == 0)
               Console.WriteLine();
            Console.Write("{0} (U+{1:X4})     ", ch, codePoint);
            ctr++;
         }
      }
      Console.WriteLine();
      Console.WriteLine("\n{0} characters are in the {1:G} category",
                        ctr, category);
   }
}
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim ctr As Integer = 0
      Dim category As UnicodeCategory = UnicodeCategory.UppercaseLetter
      
      For codePoint As UShort = 0 To UShort.MaxValue - 1
         Dim ch As Char = Convert.ToChar(codePoint)

         If CharUnicodeInfo.GetUnicodeCategory(ch) = category Then
            If ctr Mod 5 = 0 Then Console.WriteLine()
            Console.Write("{0} (U+{1:X4})     ", ch, codePoint)
            ctr += 1
         End If 
      Next
      Console.WriteLine()
      Console.WriteLine()
      Console.WriteLine("{0} characters are in the {1:G} category", 
                        ctr, category)   
   End Sub
End Module

注解

枚举的成员 UnicodeCategoryChar.GetUnicodeCategoryCharUnicodeInfo.GetUnicodeCategory 方法返回。 枚举 UnicodeCategory 还用于支持 Char 方法,例如 IsUpper(Char)。 此类方法确定指定的字符是否为特定 Unicode 常规类别的成员。 Unicode 常规类别定义字符的广泛分类,即指定为字母、十进制数字、分隔符、数学符号、标点符号等类型。

此枚举基于 Unicode 标准版本 5.0。 有关详细信息,请参阅 Unicode 字符数据库中的“UCD 文件格式”和“常规类别值”子主题。

Unicode 标准定义以下内容:

代理项对是由两个代码单元组成的序列组成的单个抽象字符的编码字符表示形式,其中,该对的第一个单元是高代理项,第二个单元是低代理项。 高代理项是 U+D800 到 U+DBFF 范围内的 Unicode 码位,低代理项是 U+DC00 到 U+DFFF 范围内的 Unicode 码位。

组合字符序列是基字符和一个或多个组合字符的组合。 代理项对表示基字符或组合字符。 组合字符为间距或非节奏字符。 间距组合字符在呈现时本身占据一个间距位置,而非节奏组合字符则不会。 音调符号是非节奏组合字符的示例。

修饰字母是一个独立间距字符,与组合字符一样,指示对前一个字母的修改。

封闭标记是一个非节奏组合字符,它包围所有以前的字符,包括一个基字符。

格式字符是通常不呈现但会影响文本布局或文本进程的操作的字符。

Unicode 标准定义了一些标点符号的多个变体。 例如,连字符可以是表示连字符的多个代码值之一,例如 U+002D (连字符减号) 或 U+00AD (软连字符) 或 U+2010 (连字符) 或 U+2011 (非中断连字符) 。 短划线、空格字符和引号也是如此。

Unicode 标准还向特定于给定脚本或语言的十进制数字表示形式分配代码,例如 U+0030 (数字零) 和 U+0660 (阿拉伯语-索引数字零) 。

适用于

另请参阅