2013-09-22 87 views
3

以下是我正在試圖分割函數的內容。在分割字符串時獲取元素的最後部分

com是從文本框傳遞的字符串,它從文本中刪除第一部分。

在文本框中的文本正在被通,因爲這".fedex TYU-123 Time to pick up package"

然後,當gms是第一塊的strip[]陣列的一部分。

string format = com.Remove(0,1); 
string[] strip = format.Split(new string[] { " " }, StringSplitOptions.None); 
if (strip[0] == "gsm") 
{ 
    string carrier = strip[0]; 
    string trackid = strip[1]; 
    string message = strip[2]; 
} 

strip[2]只包含"Time"。我想返回最後一部分爲:"Time to pick up package"

請記住,因爲消息會有所不同,所以我不想要一個特定的字符串搜索。

我怎樣才能做到這一點?

回答

2

我假設你想在開始用三分之一的話,使用string.Join(" ", strip.Skip(2))

string[] strip = format.Split(new string[] { " " }, StringSplitOptions.None); 
if (strip[0] == "gsm") 
{ 
    string carrier = strip[0]; 
    string trackid = strip[1]; 
    string message = string.Join(" ", strip.Skip(2)); //Time to pick up package 
} 
+0

那一個是因爲我不想改變字符串[]帶功能的最佳方法。非常棒! :D謝謝! – Kyle

4

這聽起來像你只想分開前三個元素。

Split()具有過載,讓你告訴它多少項目返回:

format.Split(new[] { ' ' }, 3) 
1

您可以使用爲此,string.Split(char [],int32)方法,您可以在其中給出最大值。要返回的拆分字符串的數量。

所以:

format.Split(new[] {' '}, 3); 

會做的伎倆。

更多信息:http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx

+0

我認爲你的答案應該不同,或者你必須投票回答你的想法,同時有人已經提供了答案。這將減少帖子中不必要的重複 –

相關問題