📜  c# char to int - C# (1)

📅  最后修改于: 2023-12-03 14:59:39.821000             🧑  作者: Mango

C#中的char和int转换

在C#中,char和int是两种不同的数据类型。char代表一个字符,而int代表一个整数。有时候我们需要将char类型的字符转换为int类型的整数,或者将int类型的整数转换为char类型的字符。那么在C#中如何进行这样的类型转换呢?下面将介绍两种方法。

方法1:强制类型转换

在C#中,我们可以使用强制类型转换(casting)将一个数据类型转换为另一个数据类型。对于char和int的转换,我们可以使用(int)将char类型转换为int类型,或者使用(char)将int类型转换为char类型。下面是示例代码:

// 将char类型的字符转换为int类型的整数
char c = 'A';
int i = (int)c;
Console.WriteLine(i); // 输出结果为65

// 将int类型的整数转换为char类型的字符
int j = 97;
char d = (char)j;
Console.WriteLine(d); // 输出结果为a

需要注意的是,如果要将一个字符数组(char[])转换为一个整数,应该先使用new String(char[])将字符数组转换为字符串,然后再使用int.ParseConvert.ToInt32将字符串转换为整数。示例代码如下:

// 将字符数组转换为整数
char[] chars = {'1', '2', '3'};
var str = new String(chars);
int k = int.Parse(str);
// int k = Convert.ToInt32(str);
Console.WriteLine(k); // 输出结果为123
方法2:Unicode编码

在C#中,每个字符都有一个对应的Unicode编码。对于英文字母和数字,其Unicode编码和对应的ASCII码值是一样的。因此,我们可以使用字符的Unicode编码来代表该字符。对于大写字母A,其Unicode编码为65,对应ASCII码值也是65。对于小写字母a,其Unicode编码为97,对应ASCII码值也是97。因此,我们可以使用字符的Unicode编码来进行char和int之间的转换。下面是示例代码:

// 将char类型的字符转换为int类型的整数
char c = 'A';
int i = (int)c;
Console.WriteLine(i); // 输出结果为65

// 使用Unicode编码将char类型的字符转换为int类型的整数
int j = 'A';
Console.WriteLine(j); // 输出结果为65

// 将int类型的整数转换为char类型的字符
int k = 97;
char d = (char)k;
Console.WriteLine(d); // 输出结果为a

// 使用Unicode编码将int类型的整数转换为char类型的字符
char e = (char)97;
Console.WriteLine(e); // 输出结果为a

需要注意的是,使用Unicode编码来代表字符的方法,只适用于ASCII码表上的字符。对于一些非ASCII码表上的字符,其Unicode编码值可能很大,导致转换后的int类型的值不是我们期望的结果。因此,如果要进行char和int之间的转换,推荐使用强制类型转换的方法。