【问题标题】:How to convert char array into int?如何将char数组转换为int?
【发布时间】:2011-11-15 19:30:31
【问题描述】:

我正在从文本框中获取输入。我已将文本框中的输入数字保存到这样的数组中:

char[] _array = textBox1.Text.ToCharArray(0, textBox1.Text.Length);

现在我想将数组转换为 int 数组,因为我想对数组的每个索引执行数学运算。

我怎样才能实现目标? 谢谢。

【问题讨论】:

  • 我们需要在这里了解您的意图。您需要一串数值还是要将每个 char 转换为其字符代码?
  • 您是否实现了代码以确保文本框输入为数字?您上面的代码只是将文本框中的每个字符转换为其数字 CHAR 值是您的意图,还是要将输入字符串转换为 int 即“1234”到 1234?
  • 我想得到数值。数组特定索引处的每个数字。
  • @Maess- 我已经检查了关键事件,以便文本框只允许数值。

标签: c# arrays winforms textbox


【解决方案1】:

如果您只需要每个字符的字符代码,您可以使用 LINQ 来完成。

var intArrayOfText = "some text I wrote".ToCharArray().Select(x => (int)x);

var intArrayOfText = someTextBox.Text.ToCharArray().Select(x => (int)x);

【讨论】:

  • LINQ 的好用 :)
【解决方案2】:

如果每个字符都期望是一个数字,你可以将它解析为一个 int:

List<int> listOfInt = new List<int>();
_array.ToList().ForEach(v => listOfInt.Add(int.Parse(v.ToString())));
int[] _intArray = listOfInt.ToArray();

字符码值:

List<int> listOfCharValue = new List<int>();
_array.ToList().ForEach(v => listOfCharValue.Add((int)v));
int[] _charValueArray = listOfCharValue.ToArray();

你需要处理异常。

【讨论】:

    【解决方案3】:

    假设我在评论中提出的问题是真的:

    string[] ints = { "1", "2", "3" };
    
    var str = ints.Select(i => int.Parse(i));
    

    但是,只有当您已经验证您从文本框中输入的内容是数字时,上述方法才有效。

    【讨论】:

      【解决方案4】:

      我已经解决了我的问题。我使用列表来完成任务。

      在将每个索引值转换为 int 后,我​​将每个数组索引存储在列表的相对索引处。

      对我来说,使用列表似乎更方便。 :)

      谢谢大家。

      【讨论】:

        猜你喜欢
        • 2021-10-15
        • 2020-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 2017-03-21
        相关资源
        最近更新 更多