【问题标题】:string of integers to int[] array C# [duplicate]整数字符串到 int [] 数组 C# [重复]
【发布时间】: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=&gt;(int)c-'0').ToArray() 从字符串中获取数字数组。
  • 快速旁注:您的for 循环不必要地多余。 for (int i = 1; i &lt;= numbers.Length; i++) array[i - 1] = numbers[i-1]; 可以更容易地编写,例如 for (int i = 0; i &lt; numbers.Length; i++) array[i] = numbers[i]; -- 使用这种方法,您不必记住将 i-1 放在每个索引访问器中。
  • 此外,如果您将 for 循环编码为 for (int i = 0; i &lt; numbers.Length; i++,则无需执行整个 i - 1 即可获得正确的索引

标签: c# arrays console-application


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-11-23
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2014-07-05
    • 2013-12-14
    • 1970-01-01
    相关资源
    最近更新 更多