你好,我在分隔字符串时遇到了问题。 下面是示例字符串。用冒号(:)分割字符串并用冒号分开数字
输入 - D93:E93 E98 E9:E10 E26 D76:E76 D83:E83 D121:D124
输出 - D93,E93,E98,E9,E10,E26,D76,E76,D83,E83,D121 ,D122,D123,D124
如果用同一个字母分隔两个字母,它会继续计数。 请帮助我..
问候,
你好,我在分隔字符串时遇到了问题。 下面是示例字符串。用冒号(:)分割字符串并用冒号分开数字
输入 - D93:E93 E98 E9:E10 E26 D76:E76 D83:E83 D121:D124
输出 - D93,E93,E98,E9,E10,E26,D76,E76,D83,E83,D121 ,D122,D123,D124
如果用同一个字母分隔两个字母,它会继续计数。 请帮助我..
问候,
你可以这样做:
var input = "D93:E93 E98 E9:E10 E26 D76:E76 D83:E83 D121:D124";
var list = input.Split(' ');
var result = new List<String>();
foreach (var item in list)
{
var parts = item.Split(':');
if (parts.Length == 1) result.Add(parts[0]);
else
{
if (parts[0].Substring(0, 1).CompareTo(parts[1].Substring(0, 1)) == 0)
{
var i = Convert.ToInt32(parts[0].Substring(1));
var j = Convert.ToInt32(parts[1].Substring(1));
while (i < j)
{
result.Add(parts[0].Substring(0, 1) + i);
i++;
}
if (i == j)
{
result.Add(parts[0].Substring(0, 1) + i);
}
}
else
{
result.Add(parts[0]);
result.Add(parts[1]);
}
}
}
Console.WriteLine(string.Join(", ", result));
//output
D93, E93, E98, E9, E10, E26, D76, E76, D83, E83, D121, D122, D123, D124
它继续,如果它们有相同的字母。这个例子是D121:D124当你分开它时,输出将是D121,D122,D123,D124,直到它结束于D124 –
@SamCasil更新。 – zsong
非常感谢你@sza。你节省了我的时间。 –
尝试string.Split
string input = "D93:E93 E98 E9:E10 E26 D76:E76 D83:E83 D121:D124";
var output = input.Split(new [] {':', ' '});
Console.WriteLine(output);
,或者如果您需要的逗号:
string input = "D93:E93 E98 E9:E10 E26 D76:E76 D83:E83 D121:D124";
var output = input.Split(new [] {':', ' '});
var outstr = output.Aggregate((a,e) => a + ", " + e);
Console.WriteLine(outstr);
如果他们有相同的字母,它会继续。该例子是D121:D124当你分开它时,输出将是D121,D122,D123,D124,直到它结束于D124 –
易于EST的方法是使用String.Split()
和String.Join()
组合:
var result = String.Join(", ", s.Split(':', ' '));
它继续,如果他们有相同的字母。该例子是D121:D124当你分开时,输出将是D121,D122,D123,D124,直到它结束于D124 –
你有更多的信息,如示例代码?你到底在做什么,你的问题是关于分裂,然后你说一些关于继续计数的事情?你真的在追求什么,你尝试过什么。 –
你是什么意思“它继续计数”? – doppelgreener
如果它们具有相同的字母,则继续。该例子是D121:D124当你分开时,输出将是D121,D122,D123,D124,直到它结束于D124。 –