2016-04-15 104 views
0

我想解析來自語音識別器的文本的參數,我希望能夠將此: 「int我的變量字符串其他變量」 到包含兩個字符串的數組像這樣: 「int my variable」和「string some other variable」 正如你所看到的,我需要使用一個字符串數組來分割它,然後保留我使用的分隔符。 任何人有任何想法如何做到這一點?分割字符串與字符串數組,但保留分隔符

+0

你爲什麼選擇這樣拆分它(3個字+4個字)而不是其他方式(例如4個字+3個字)? –

+1

您的字符串中有許多空白區域,並且您選擇了一個特定的空白區域來分割它。你如何決定分割哪個空白空間? – Vikhram

+0

我不會用空格分割。我正在使用一個字符串數組進行分割。我確實這樣說。 – SPV2008

回答

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); 
} 
+0

是的,這將工作,如果這是我唯一需要使用的時間它,但我提到的字符串是一個例子。我可以有一些非常不同的東西,比如「char輸入字母int數字」或類似的東西。 – SPV2008

+0

檢查更新代碼 – rashfmnb