使用字符串数组拆分字符串但保留分隔符

时间:2016-04-15 19:51:27

标签: c# string split

我正在尝试解析来自语音识别器的文本中的参数,我希望能够将其转换为: “int my variable string some other variable” 进入包含两个字符串的数组,如下所示: “int my variable”和“string some other variable” 如您所见,我需要使用字符串数组拆分它,然后保留我使用的分隔符。 有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此代码执行此操作,但此代码仅根据您提出的当前问题

string s = "int my variable string some other variable";

string[] sarr1 = new string[] { "string" };
string[] sarr=s.Split(sarr1, StringSplitOptions.None);
for (int i = 0; i < sarr.Length; i++)
{
    if (i == sarr.Length - 1)
        Console.WriteLine(sarr1[0] + sarr[i]);
    else
        Console.WriteLine(sarr[i]);
}

如果您使用的是数组列表,则可以使用此方法

string s = "int my variable string some other variable float is another variable float is another variable";

 //you can create any string for replacement over here that
 //suit or fits your requirement
s = s.Replace("int", "<@@> <##>");
s = s.Replace("float", "<$$> <%%>");
s = s.Replace("string", "<^^> <&&>");

Dictionary<string, string> dict = new Dictionary<string, string>();
string[] sarr3 = new string[] { "<@@>","<$$>","<^^>" };
string[] sarr = s.Split(sarr3, StringSplitOptions.None);

for (int i = 0; i < sarr.Length; i++)
{
    string temp = sarr[i].Replace("<##>", "int").Replace("<%%>", "float").Replace("<&&>", "string");
    Console.WriteLine(temp);
}