2013-09-22 84 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

我认为你的答案应该不同,或者你必须投票回答你的想法,同时有人已经提供了答案。这将减少帖子中不必要的重复 –

相关问题