在c#中,Char Struct被用来表示一个字符作为UTF-16代码单元。此结构定义在System名称空间下。基本上,这是用来表示。net框架中的Unicode字符。Unicode标准使用唯一的21位标量(称为代码点)来标识每个Unicode字符。它还定义了UTF-16编码形式,指定了如何将一个编码点编码为一个或多个16位值的序列。每个16位值从十六进制0x0000到0xFFFF,以Char结构存储。Char对象的值是它的16位数字(序数)值。
Char结构提供了不同的方法,用于将当前Char对象的值转换为另一种类型的对象,比较Char对象,检查Char对象的Unicode类别等。
属性:
- MaxValue:这是一个常量字段, 代表可能的最大Char值。
- MinValue:这是一个常量字段, 表示可能的Char最小值。
方法
| 方法 | 描述 |
|---|---|
| CompareTo() | 将此实例与指定的对象或值类型进行比较, 并指示此实例是在先后, 在后还是在排序时出现在与指定对象或值类型相同的位置。 |
| ConvertFromUtf32(Int32) | 将指定的Unicode代码点转换为UTF-16编码的字符串。 |
| ConvertToUtf32() | 将UTF-16编码的代理对的值转换为Unicode代码点。 |
| Equals() | 返回一个值, 该值指示此实例是否等于指定的对象或Char值。 |
| GetHashCode() | 返回此实例的哈希码。 |
| GetNumericValue() | 将指定的数字Unicode字符转换为双精度浮点数。 |
| GetTypeCode() | 返回值类型Char的TypeCode。 |
| GetUnicodeCategory() | 将Unicode字符分类到由UnicodeCategory值之一标识的组中。 |
| IsControl() | 指示是否将指定的Unicode字符归类为控制字符。 |
| IsDigit() | 指示是否将Unicode字符归类为十进制数字。 |
| IsHighSurrogate() | 指示指定的Char对象是否为高代理。 |
| IsLetter() | 指示是否将Unicode字符归类为Unicode字母。 |
| IsLetterOrDigit() | 指示将Unicode字符分类为字母还是十进制数字。 |
| IsLower() | 指示是否将Unicode字符归类为小写字母。 |
| IsLowSurrogate() | 指示指定的Char对象是否为低代理。 |
| IsNumber() | 指示Unicode字符是否归类为数字。 |
| IsPunctuation() | 指示是否将Unicode字符归类为标点符号。 |
| IsSeparator() | 指示是否将Unicode字符归类为分隔符。 |
| IsSurrogate() | 指示字符是否具有代理代码单元。 |
| IsSurrogatePair() | 指示两个指定的Char对象是否形成代理对。 |
| IsSymbol() | 指示是否将Unicode字符归类为符号字符。 |
| IsUpper() | 指示是否将Unicode字符归类为大写字母。 |
| IsWhiteSpace() | 指示是否将Unicode字符归类为空格。 |
| Parse(字符串) | 将指定字符串的值转换为其等效的Unicode字符。 |
| ToLower() | 将Unicode字符的值转换为其等效的小写字母。 |
| ToLowerInvariant(Char) | 使用不变区域性的大小写规则将Unicode字符的值转换为等效的小写字母。 |
| ToString() | 将此实例的值转换为其等效的字符串表示形式。 |
| ToUpper() | 将Unicode字符的值转换为等效的大写字母。 |
| ToUpperInvariant(Char) | 使用不变区域性的大小写规则将Unicode字符的值转换为等效的大写形式。 |
| TryParse(字符串, 字符) | 将指定字符串的值转换为其等效的Unicode字符。返回码指示转换是成功还是失败。 |
示例1:
//C# program to demonstrate the
//Char.CompareTo(Char) Method
using System;
class GFG {
//Main Method
public static void Main()
{
char c1 = 'G' ;
char c2 = 'f' ;
char c3 = 'M' ;
//using Char.CompareTo(Char) Method
//returns 0 as this instance has
//same position in the sort as in c1
Console.WriteLine( 'G' .CompareTo(c1));
//using Char.CompareTo(Char) Method
//returns -31 as this instance
//precedes c2
Console.WriteLine( 'G' .CompareTo(c2));
//using Char.CompareTo(Char) Method
//returns -6 as this instance follows
//c3
Console.WriteLine( 'G' .CompareTo(c3));
}
}
输出如下:
0
-31
-6
示例2:
//C# program to illustrate the
//Char.IsWhiteSpace(Char) Method
using System;
class GFG {
//Main Method
static public void Main()
{
//Declaration of data type
bool output;
//checking if space
//is a whitespace
char c1 = ' ' ;
output = Char.IsWhiteSpace(c1);
Console.WriteLine(output);
//checking if carriage return
//is a whitespace
char c2 = '\n' ;
output = Char.IsWhiteSpace(c2);
Console.WriteLine(output);
//checking if hyphen
//is a whitespace
char c3 = '-' ;
output = Char.IsWhiteSpace(c3);
Console.WriteLine(output);
}
}
输出如下:
True
True
False
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.char?view=netframework-4.7.2#definition

![从字法上最小长度N的排列,使得对于正好为K个索引,a[i] a[i]+1](https://www.lsbin.com/wp-content/themes/begin%20lts/img/loading.png)