获取由分隔符

时间:2017-12-13 10:01:42

标签: c# asp.net string substring

我有像

这样的字符串列表
FDENR8027ROR 0.10-CTW-SI2-2-0-0-A4
FDENR7932ROR-1-0-0-A2 
FDENS3311-4-5-105-A2
FDENS1759-T-6-1-107-A3

需要创建输出,

FDENR8027ROR 0.10-CTW-SI2, 2, 0 , 0, A4
FDENR7932ROR, 1, 0, 0, A2 
FDENS3311, 4, 5, 105, A2
FDENS1759-T, 6, 1, 107, A3

困难在于,我需要从字符串的结尾检查-(连字符),并且只需要将最后四个字符串分开。剩余的文本可以按原样使用。

我试过了:

string s = "FDENR8027ROR 0.10-CTW-SI2-2-0-0-A4";
int idx = s.LastIndexOf('-');
Console.WriteLine(s.Substring(0, idx)); //FDENR8027ROR 0.10-CTW-SI2-2-0-0
Console.WriteLine(s.Substring(idx + 1)); //A4

但这只是一次,其他三个字符串呢。 :(

怎么做?

2 个答案:

答案 0 :(得分:2)

这是一种相当简单的方法:

var str = "FDENR8027ROR 0.10-CTW-SI2-2-0-0-A4";
var arr = str.Split('-');
var result = new string[] {
    string.Join("-", arr.Take(arr.Length-4).ToArray()),
    arr[arr.Length-4],
    arr[arr.Length-3],
    arr[arr.Length-2],
    arr[arr.Length-1]
};

答案 1 :(得分:1)

这样的事情:

string s = "FDENR8027ROR 0.10-CTW-SI2-2-0-0-A4";
string[] parts = s.Split('-');
List<string> result = new List<string>{ string.Join("-", parts.Take(parts.Length - 4)) };
result.AddRange(parts.Skip(parts.Length - 4).Take(4));

查看我的工作fiddle