通过


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
属性

字段

名称 说明
UppercaseLetter 0

大写字母。 由 Unicode 指定为“Lu”(字母,大写)签名。 值为 0。

LowercaseLetter 1

小写字母。 由 Unicode 指定“Ll”(字母,小写)签名。 值为 1。

TitlecaseLetter 2

标题字母。 由 Unicode 指定“Lt”(字母、标题箱)签名。 值为 2。

ModifierLetter 3

修饰字母字符,它是指示对上一个字母的修改的任意位置间距字符。 由 Unicode 指定“Lm”(字母、修饰符)签名。 值为 3。

OtherLetter 4

不是大写字母、小写字母、标题字母或修饰字母的字母。 由 Unicode 指定“Lo”(字母,其他)表示。 值为 4。

NonSpacingMark 5

指示基字符修改的非节奏字符。 由 Unicode 指定“Mn”(标记,非节奏)表示。 值为 5。

SpacingCombiningMark 6

指示修改基字符并影响该基字符字形的宽度的间距字符。 由 Unicode 指定“Mc”(标记,间距组合)表示。 值为 6。

EnclosingMark 7

封闭标记字符,这是一个非加速度组合字符,将前面所有字符括在一起并包括基字符。 由 Unicode 指定“Me”(标记,封闭)表示。 值为 7。

DecimalDigitNumber 8

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

LetterNumber 9

以字母表示的数字,而不是十进制数字,例如,5 的罗马数字,即“V”。 该指示器由 Unicode 指定“Nl”(数字、字母)表示。 值为 9。

OtherNumber 10

数字既不是十进制数字,也不是字母数字,例如分数 1/2。 该指示器由 Unicode 指定“否”(数字,其他)表示。 值为 10。

SpaceSeparator 11

空格字符,没有字形,但不是控件或格式字符。 由 Unicode 指定“Zs”(分隔符、空格)签名。 值为 11。

LineSeparator 12

用于分隔文本行的字符。 由 Unicode 指定“Zl”(分隔符、行)表示。 值为 12。

ParagraphSeparator 13

用于分隔段落的字符。 由 Unicode 指定“Zp”(分隔符,段落)签名。 值为 13。

Control 14

控制代码字符,其 Unicode 值为 U+007F 或 U+0000 到 U+001F 或 U+0080 到 U+009F 的范围。 由 Unicode 指定为“Cc”(其他,控件)签名。 值为 14。

Format 15

影响文本布局或文本进程操作的格式字符,但通常不会呈现。 由 Unicode 指定“Cf”(其他,格式)签名。 值为 15。

Surrogate 16

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

PrivateUse 17

专用字符,在 U+E000 到 U+F8FF 的范围内具有 Unicode 值。 由 Unicode 指定“Co”(其他,专用用途)签名。 值为 17。

ConnectorPunctuation 18

连接两个字符的连接器标点符号字符。 由 Unicode 指定“Pc”(标点符号、连接器)签名。 值为 18。

DashPunctuation 19

短划线或连字符字符。 由 Unicode 指定“Pd”(标点符号、短划线)表示。 值为 19。

OpenPunctuation 20

对标点符号之一(如括号、方括号和大括号)的左角字符。 由 Unicode 指定“Ps”(标点符号,打开)签名。 值为 20。

ClosePunctuation 21

一个配对标点符号(如括号、方括号和大括号)的结束字符。 由 Unicode 指定“Pe”(标点符号,关闭)签名。 值为 21。

InitialQuotePunctuation 22

左引号字符或初始引号字符。 由 Unicode 指定“Pi”(标点符号、初始引号)签名。 值为 22。

FinalQuotePunctuation 23

右引号字符或最后引号字符。 由 Unicode 指定“Pf”(标点符号、最后引号)表示。 值为 23。

OtherPunctuation 24

不是连接符、短划线、打开标点符号、关闭标点符号、初始引号或最终引号的标点符号字符。 由 Unicode 指定“Po”(标点符号,其他)表示。 值为 24。

MathSymbol 25

数学符号字符,如“+”或“= ”。 由 Unicode 指定“Sm”(符号,数学)签名。 值为 25。

CurrencySymbol 26

货币符号字符。 由 Unicode 指定“Sc”(符号、货币)签名。 值为 26。

ModifierSymbol 27

修饰符符号字符,指示对周围字符的修改。 例如,小数斜杠指示左侧的数字是分子,右侧的数字是分母。 该指示器由 Unicode 指定“Sk”(符号、修饰符)来表示。 值为 27。

OtherSymbol 28

不是数学符号、货币符号或修饰符的符号字符。 由 Unicode 指定“So”(符号,其他)签名。 值为 28。

OtherNotAssigned 29

未分配给任何 Unicode 类别的字符。 由 Unicode 指定“Cn”(其他,未分配)签名。 值为 29。

示例

以下示例显示大写Letter 类别中字符的字符及其对应的代码点。 可以通过将 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 Standard 还向特定于给定脚本或语言的十进制数字表示形式分配代码,例如 U+0030(数字零)和 U+0660(Arabic-Indic 位零)。

适用于

另请参阅