2

这是我正在尝试锻炼拆分功能的内容。

com是从文本框传递的字符串,它从文本中删除第一部分。

文本框中的文本正在传递".fedex TYU-123 Time to pick up package"

然后,when是数组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".

还要记住,因为消息有时也会有所不同,所以我不想要特定的字符串搜索。

我怎样才能做到这一点?

4

3 回答 3

3

听起来您只想拆分前三个元素。

Split()有一个重载,可以让你告诉它要返回多少项目:

format.Split(new[] { ' ' }, 3)
于 2013-09-22T21:10:21.397 回答
1

我假设您想要所有以第三个开头的单词,请使用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
}
于 2013-09-22T21:11:00.997 回答
0

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

所以:

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

会成功的。

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

于 2013-09-22T21:12:37.470 回答