整数字符串到int []数组C#

时间:2019-01-16 16:01:30

标签: c# arrays console-application

此问题有所不同,因为它解决了将整数添加到char时将char转换为int的问题。

下面的代码段,我试图在C#中将整数字符串实现为int []数组。

我想要的输出是一个数组:

12345678910

这是我的代码,但是,它的输出不是我想要的:

string numbers = "12345678910";

int[] array = new int[numbers.Length];

for (int i = 1; i <= numbers.Length; i++)
{
    array[i - 1] = numbers[i-1];
}

foreach(var y in array)
{
    Console.Write(y);
}

给定代码的输出:

4950515253545556574948

有人可以告诉我为什么我得到此输出,以及如何解决此问题?谢谢!

编辑:更改了我的代码,它可以使用以下代码:

for (int i = 0; i < numbers.Length; i++)
{
     array[i] = int.Parse(numbers[i].ToString());
}

2 个答案:

答案 0 :(得分:2)

首先,我认为您无法使用这种方法来区分两位数的数字。

我指的是您的代码的这一部分:string numbers = "123456789 10 "; 遍历您的字符串字符并解析为Int(如果需要)(credit)(credit

 foreach (char character in yourString)
        {
            int x = (int)Char.GetNumericValue(character);                
            //code to add to your array of ints
        }

答案 1 :(得分:0)

将代码替换为

array[i - 1] = numbers[i - 1] - '0';

char类型是2个字节,代表Unicode符号

如果您将char视为int,它将是Unicode表中元素的 index

https://unicode-table.com

'0'== 30,并且'0'是Unicode表中的第30个元素,'9'是第39个元素

我们不能从char中减去int,所以我们从char中减去了char

不进行int和char等之间的转换