【发布时间】:2019-06-10 18:24:55
【问题描述】:
这个问题不同,因为它解决了在添加到整数数组时将 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());
}
【问题讨论】:
-
您将每个字符转换为其代码,然后显示代码,而不是相关的数字
-
字符串是 char 对象的数组。你看到的是单个字符的数值。
-
数字一个接一个,
Char对象可以隐式转换为int。您可以使用numbers.Select(c=>(int)c-'0').ToArray()从字符串中获取数字数组。 -
快速旁注:您的
for循环不必要地多余。for (int i = 1; i <= numbers.Length; i++) array[i - 1] = numbers[i-1];可以更容易地编写,例如for (int i = 0; i < numbers.Length; i++) array[i] = numbers[i];-- 使用这种方法,您不必记住将i-1放在每个索引访问器中。 -
此外,如果您将 for 循环编码为
for (int i = 0; i < numbers.Length; i++,则无需执行整个i - 1即可获得正确的索引
标签: c# arrays console-application