此问题有所不同,因为它解决了将整数添加到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());
}
答案 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
'0'== 30,并且'0'是Unicode表中的第30个元素,'9'是第39个元素
我们不能从char中减去int,所以我们从char中减去了char
不进行int和char等之间的转换