【问题标题】:Split 16 digit string into 4 parts and store them in an array in C#将 16 位字符串拆分为 4 部分并将它们存储在 C# 中的数组中
【发布时间】:2012-10-31 17:07:28
【问题描述】:

我有一个由 16 位数字(十六进制数字)组成的字符串,它将作为一个大数字输入到文本框中。例如,“1111222233334444”。

我需要

  • 读入这个号码,
  • 分为四组,如1111 2222 3333 4444。
  • 将组存储到四个变量或一个数组中

我找到了一些方法来做到这一点,但他们只是写信给控制台。所以在用户输入该数据后,我需要有类似的东西:

    string first = 1111; 
    string second = 2222; 
    string third = 3333; 
    string fourth = 4444.

感谢任何帮助!

【问题讨论】:

  • 嗯,打四次Substring? (看String.Substring(int, int)...)
  • 看起来这就是我所需要的。以为很简单,呵呵。谢谢!
  • 我相信有人可以使用 Linq 找到一个难以理解的解决方案 :)
  • @JonB: var array = Enumerable.Range(0, 4).Select(i => str.Substring(i *4, 4)).ToArray() :)
  • @JonB 当然,只需将其转换为字符数组,然后使用.Take()!简单高效。除了你永远不会这样做的部分。

标签: c# string variables split


【解决方案1】:

您可以使用子字符串来做到这一点。

string strNumber = "1111222233334444";

string []strArr = new string[4];

for(int i=0; i < 4; i++)
{
   strArr[i] = strNumber.Substring(i*4, 4);
}

【讨论】:

【解决方案2】:

这里是:

string initial_string = TextBox1.Text;  //read from textbox 

string [] number = new string[4];

number[0] = initial_string.Substring(0,4);
number[1] = initial_string.Substring(4,4);
number[2] = initial_string.Substring(8,4);
number[3] = initial_string.Substring(12,4);

【讨论】:

    【解决方案3】:

    您可以使用正则表达式在一行中完成:

    var res = Regex.Split(str, "(?<=\\G\\d{4})");
    

    注意:这在 Microsoft .NET 下运行良好,但不适用于 Mono 的 Regex 实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多