我有像
这样的字符串列表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
但这只是一次,其他三个字符串呢。 :(
怎么做?
答案 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。