从将 char 转换为整数获取不同的值
Getting different values from convert char to integer
当我显示 'i' 变量时,它是一个字符值
{
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 方法 return 该字符的 ASCII 值。您必须将 i 值转换为字符串 i.ToString()
或者您可以简单地从转换后的值中减去 48。
当我显示 'i' 变量时,它是一个字符值
{
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 方法 return 该字符的 ASCII 值。您必须将 i 值转换为字符串 i.ToString()
或者您可以简单地从转换后的值中减去 48。