如何在C#中按可变数量的字符拆分字符串

时间:2013-03-14 21:29:01

标签: c# split

我从串口读取数据,我想将这些数据拆分成较小的数字 例如:

        String  inputData = "3032592556231055126395692345723465234578235698"

        output : data1 = "30325925562"
                 data2 = "31055126395"
                 data3 = "692345723"
                 data4 = "465234578"
                 data5 = "235"
                 data6 = "698"

正是我想要做的事情。

2 个答案:

答案 0 :(得分:1)

使用

string part = new string(inputString.Skip(12).Take(12).ToArray());

您可以使用变量或两个

替换12

答案 1 :(得分:1)

假设data1data2始终包含11位数,data3data4 9位数,依此类推,可能使用System.Text.RegularExpression.Regex会帮助您实现你想要的(不使用SubString

Regex regex = new Regex("(\d{11})(\d{11})(\d{9})(\d{9})(\d{3})(\d{3})");
Match match = regex.Match(inputData);

if (match == Match.Empty)
    // Your inputData did not match the Regex, decide what to do here

data1 = match.Groups[1];
data2 = match.Groups[2];
// etc.

我承认,这不是最漂亮的解决方案。