ToCharArray生成两组数字而不是一组

时间:2012-11-04 21:28:09

标签: c#

您好我正在尝试将字符串拆分为字符数组但由于某种原因结果不是我所期望的。我通过调试器抛出了这段代码,我给它了字符串“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] + " ";
    }

2 个答案:

答案 0 :(得分:2)

你得到的“其他”序列是ascii值的序列......

查看int.Parse(string)

答案 1 :(得分:2)

如果我正确理解您的问题,您希望将字符串拆分为表示数字的整数,如下所示:"34325"变为new int[] {3,4,3,2,5}

按如下所示更改您的代码,将表示数字的每个字符解释为一位数字:

 int[] numbers = numberChars.Select(x => ((int)x)-'0').ToArray();

这是link to a demo on ideone

您看到数字5152等的原因是您看到相应数字的ASCII代码。