[英]How do I convert the contents of a char array to their corresponding integer values in C#?
[英]Getting different values from convert char to integer
当我显示 'i' 变量时,这将是一个 char 值
{
class Program {
static void Main(string[] args) {
var max = 0;
var lista = new char[] {
'1',
'2',
'3',
'4'
};
foreach(char i in lista) {
Console.WriteLine(i);
/* var hola = Convert.ToInt32(i);
Console.WriteLine(hola);*/
}
}
}
}
我明白了:
> 1 2 3 4
但是,当将 'i' 转换为 int
var max = 0;
var lista = new char[] {
'1',
'2',
'3',
'4'
};
foreach(char i in lista) {
var hola = Convert.ToInt32(i);
Console.WriteLine(hola);
}
我明白了:
49 50 51 52
知道可能是什么问题吗? 我想获得相同的值,所以我可以将它们评估为整数并获得其中最大的值,但我不能。
当您将char
转换为int
时,您将获得该字符的 ASCII 值。 这些值的巧妙之处在于它们是连续的,因此如果减去'0'
的值(0字符),您可以将表示数字的字符转换为该数字:
var hola = i - '0';
如果您想要文字字符而不是字符的 ascii 编号,请使用ToString()
方法
var hola = Convert.ToInt32(i.ToString());
WriteLine 方法在内部转换参数字符串。 因此,您可以拥有您想要的价值。 ToInt 方法返回该字符的 ASCII 值。 您必须将您的 i 值转换为字符串i.ToString()
或者您可以简单地从转换后的值中减去 48。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.