嗨,我正在尝试将一个字符串拆分为字符数组,但由于某种原因,结果不是我期望的。我通过调试器传递了这段代码,并给它了字符串"34325"。当我到达将字符串转换为字符数组的代码部分时,出现了两组字符的情况。我得到了类似这样的结果:
char[0] = 51 '3' char[1] = 52 '4' char[2] = 51 '3' char[3] = 50 '2' char[4] = 53 '5'
然后,当我将char数组的每个元素转换为int时,第一个数字总是被取出:51,52,51,50,53。
我的问题是如何纠正这个问题,以便我获得3、4、3、2、5?另外,当我使用toCharArray()方法时,这些数字从哪里来的:51,52,51,50,53?
这是我的代码:
value = TextBox1.Text;
char[] numberChars = value.ToCharArray();
int[] numbers = numberChars.Select(x => Convert.ToInt32(x)).ToArray();
for( int i = 0; i < numbers.Length; i++ ) {
TextBox2.Text += numbers[i] + " ";
}
'0'
代表数字零的ASCII编码。由于所有十进制数字在ASCII和UNICODE中都占据连续的位置,因此从另一个表示数字的字符的代码中减去零的代码可以给出该数字到零的距离,这也是该数字的整数值。 - Sergey Kalinichenko