如何确定字符串上的组数据(Delimeter)

本文关键字:数据 Delimeter 何确定 字符串 | 更新日期: 2023-09-27 18:05:47

我有这个字符串数据如下:-

mydata="KK,23,45,33,56,66,X/TT,01,23,23,56,Y/"

让我提醒一下,这个字符串数据可以是多个组,其中它由这个字符/分开。

Ok。现在,我需要从上面的组数据字符串中更具体地切片,以在循环组数据时推送它,像这样:-

While Loop (Group i++)
    '// first 3 items

等:"KK,23,45"发送到功能A

    '// 2 items after that

等:"33,56"发送到功能B

    '// last 2 items

etc: "66,X"发送给函数C

    '// remove this charater "/" before continue next group data
    i=i+1
Loop

我不知道如何像上面的while循环那样切片。你有解决这个问题的办法吗?提前感谢您的阅读并回复我的问题

如何确定字符串上的组数据(Delimeter)

看起来您可以从String中获益。分离方法:

  • 用"/"分割原始字符串以获得您的三个项目
  • 将每个部分用","分开,以获得要发送到方法A, B和C的单个项目

试一试:

string[] groups = mydata.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
foreach (string item in groups)
{
    string[] InnerGroup = item.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
    SendToFunctionA(InnerGroup[0] + "," + InnerGroup[1] + "," + InnerGroup[2]);
    SendToFunctionB(InnerGroup[3] + "," + InnerGroup[4]);
    SendToFunctionC(InnerGroup[5] + "," + InnerGroup[6]);
}

Or by While循环:

string[] groups = mydata.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
int i = 0;
while(i < groups.Length)
{
    string[] InnerGroup = groups[i].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
    SendToFunctionA(InnerGroup[0] + "," + InnerGroup[1] + "," + InnerGroup[2]);
    SendToFunctionB(InnerGroup[3] + "," + InnerGroup[4]);
    SendToFunctionC(InnerGroup[5] + "," + InnerGroup[6]);
    i++;
}

以上代码忽略空值。

如果组的值为空,可以使用下面的代码:

string[] groups = mydata.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
int i = 0;
while(i < groups.Length)
{
    string[] InnerGroup = groups[i].Split(new char[] { ',' });
    SendToFunctionA(InnerGroup[0] + "," + InnerGroup[1] + "," + InnerGroup[2]);
    SendToFunctionB(InnerGroup[3] + "," + InnerGroup[4]);
    SendToFunctionC(InnerGroup[5] + "," + InnerGroup[6]);
    i++;
}