【问题标题】:convert string to int[] returning different values将字符串转换为 int[] 返回不同的值
【发布时间】:2019-08-30 20:16:45
【问题描述】:
Console.WriteLine("Enter first array");
        string firstArray = Console.ReadLine();
        Console.WriteLine("Enter second array");
        string secondArray = Console.ReadLine();

        //int[] first = new int[] { 1, 5, 8 };
        //int[] second = new int[] { 2, 4, 9 };
        int[] first = firstArray.Select(x => Convert.ToInt32(x)).ToArray();
        int[] second = secondArray.Select(x => Convert.ToInt32(x)).ToArray();

让用户输入一个数组。当我尝试将字符串值转换为实际数组时,数字是不同的。 例如,如果为第一个数组输入“1”。 '49' 出现在 [] 前面

【问题讨论】:

  • 因为字符 1 具有 Unicode 代码点 49。请阅读How to Ask 并详细说明您想要做什么。您的用户以什么格式输入数组?然后正确拆分输入以获得各个数值。然后将那些字符串解析为数字。
  • char '1'int 中是49
  • 基本问题是:“输入行包含什么?”用空格或逗号分隔的一个数字还是几个数字?下一个问题是:“预期的输出是什么?”。最后但并非最不重要的一点是:您的实际问题是什么?您需要先弄清楚这几点,我们才能给您准确的答复。否则我们只能猜测你的意图是什么。

标签: c# int


【解决方案1】:

firstArray.Select 会将您的字符串视为char[]。所以,正如 SeM 所说的“char ch = '1' 它是 49 int”。

您需要先拆分字符串。例如,如果它是逗号分隔的,你应该这样做:

firstArray.Split(',').Select(x => Convert.ToInt32(x)).ToArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多