C# char 类型
上次修改时间:2023 年 9 月 6 日
在本文中,我们将展示如何在 C# 中使用 char 类型。
C# 中的字符串是 UTF-16 代码单元的序列。 System.Char 类型将字符表示为 UTF-16 代码单元。
char 关键字是 System.Char 类型的别名。
.NET 使用 Char 结构通过 UTF-16 编码来表示 Unicode 代码点。 Char 对象的值是其 16 位数字(序号)值。
| 类型 | 范围 | 大小 | .NET 类型 |
|---|---|---|---|
| char | U+0000 到 U+FFFF | 16 位 | System.Char |
char 类型的默认值为 \0, (U+0000)。
在 C# 代码中,字符可以表示为
- 字符字面量
- Unicode 转义序列 -- \u 后跟字符代码的四位符号十六进制表示
- 十六进制转义序列 -- \x 后跟字符代码的十六进制表示
C# char 简单示例
以下是使用 char 类型的简单示例。
char a = 'f'; Console.WriteLine(a); Console.WriteLine(a.GetType()); Console.WriteLine(typeof(char)); Console.WriteLine((int)char.MaxValue); Console.WriteLine((int)char.MinValue);
我们定义一个 char 变量并显示其类型以及最小和最大可能值。
$ dotnet run f System.Char System.Char 65535 0
C# char 字面量 & 转义序列
Char 值用单引号括起来。
char c = 'л'; Console.WriteLine(c); char c2 = '\u043B'; Console.WriteLine(c2); char c3 = '\x43b'; Console.WriteLine(c3);
该示例使用字符字面量、Unicode 转义序列和十六进制转义序列表示三个 char。
$ dotnet run л л л
C# char 数组
为了将 char 数组转换为字符串,我们只需将该数组传递给其构造函数。 要将字符串转换为 char 数组,我们调用 ToCharArray 方法。
char[] vals = { 'a', 'n', ' ', 'o', 'l', 'd', ' ', 'f', 'a', 'l', 'c', 'o', 'n' };
Console.WriteLine(vals);
Console.WriteLine(vals.GetType());
Console.WriteLine("------------------------");
string msg = new(vals);
Console.WriteLine(msg);
Console.WriteLine(msg.GetType());
Console.WriteLine("------------------------");
char[] vals2 = msg.ToCharArray();
Console.WriteLine(vals2);
Console.WriteLine(vals2.GetType());
在该示例中,我们将 char 数组转换为字符串,然后再将字符串转换回 char 数组。
$ dotnet run an old falcon System.Char[] ------------------------ an old falcon System.String ------------------------ an old falcon System.Char[]
C# 迭代字符串元素
C# 字符串是 char 元素的序列。
string msg = "an old falcon";
foreach (var e in msg)
{
Console.Write($"{e} ");
}
Console.WriteLine("\n-----------------------------");
foreach (var e in msg)
{
byte b = (byte)e;
Console.Write($"{b} ");
}
Console.WriteLine("\n-----------------------------");
byte[] data = { 97, 110, 32, 111, 108, 100, 32, 102, 97, 108, 99, 111, 110 };
foreach (var e in data)
{
char c = (char)e;
Console.Write($"{c} ");
}
Console.WriteLine();
该示例循环访问字符串并分别输出每个 char。 它将字符串转换为字节值,然后将字节值转换为字符串。
foreach (var e in msg)
{
Console.Write($"{e} ");
}
在 foreach 循环中,我们遍历字符串的元素。
foreach (var e in msg)
{
byte b = (byte)e;
Console.Write($"{b} ");
}
我们循环遍历字符串并将每个元素强制转换为字节值。
byte[] data = { 97, 110, 32, 111, 108, 100, 32, 102, 97, 108, 99, 111, 110 };
foreach (var e in data)
{
char c = (char)e;
Console.Write($"{c} ");
}
我们定义一个字节数组。 我们循环遍历该数组并将每个字节强制转换为 char。
$ dotnet run a n o l d f a l c o n ----------------------------- 97 110 32 111 108 100 32 102 97 108 99 111 110 ----------------------------- a n o l d f a l c o n
C# char.GetUnicodeCategory
char.GetUnicodeCategory 将指定的 Unicode 字符分类到由其中一个 UnicodeCategory 值标识的组中。
string msg = "There are 22 apples in the basket.";
foreach (var e in msg)
{
var category = char.GetUnicodeCategory(e);
Console.WriteLine($"{e} - {category}");
}
在该示例中,我们显示给定字符串中每个元素的 Unicode 类别。
$ dotnet run T - UppercaseLetter h - LowercaseLetter e - LowercaseLetter r - LowercaseLetter e - LowercaseLetter - SpaceSeparator a - LowercaseLetter r - LowercaseLetter e - LowercaseLetter - SpaceSeparator 2 - DecimalDigitNumber 2 - DecimalDigitNumber - SpaceSeparator a - LowercaseLetter p - LowercaseLetter p - LowercaseLetter l - LowercaseLetter e - LowercaseLetter s - LowercaseLetter - SpaceSeparator i - LowercaseLetter n - LowercaseLetter - SpaceSeparator t - LowercaseLetter h - LowercaseLetter e - LowercaseLetter - SpaceSeparator b - LowercaseLetter a - LowercaseLetter s - LowercaseLetter k - LowercaseLetter e - LowercaseLetter t - LowercaseLetter . - OtherPunctuation
来源
在本文中,我们使用了 C# 语言中的 char 类型。
作者
列出所有 C# 教程。