拆分字符串并仅获取第二个值

时间:2016-07-20 09:07:54

标签: c# asp.net string split

我想知道是否可以使用split将字符串分成几个用逗号分隔的部分,如下所示:

10,12-JUL-16,11,0

我只想要第二部分,12-JUL-16字符串而不是其余部分?

5 个答案:

答案 0 :(得分:22)

是:

var result = str.Split(',')[1];

OR:

var result = str.Split(',').Skip(1).FirstOrDefault();

OR(更好的表现 - 只占分割的前三部分):

var result = str.Split(new []{ ',' }, 3).Skip(1).FirstOrDefault();

答案 1 :(得分:4)

如果您不确定是否有第二项,请使用LINQ的Skip()First()FirstOrDefault()

string s = "10,12-JUL-16,11,0";
string second = s.Split(',').Skip(1).First();

或者,如果您完全确定有第二项,则可以使用数组访问器:

string second = s.Split(',')[1];

答案 2 :(得分:4)

您可以使用String.Split,它有一个重载方法,可以接受最多的分割。

var input = "10,12-JUL-16,11,0"; // input string.

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

检查Demo

答案 3 :(得分:3)

是的,你可以:

string[] parts = str.Split(',');

然后你的第二部分在parts[1]

或:

string secondPart = str.Split(',')[1];

或与Linq:

string secondPart = str.Split(',').Skip(1).FirstOrDefault();
if (secondPart != null)
{
    ...
}
else
{
    ... 
}

此外,您不仅可以使用一个符号进行字符串拆分,即:

string secondPart = str.Split(new[] {',', '.', ';'})[1];

答案 4 :(得分:3)

这是其他方式已经提及的方式。

string input = "10,12-JUL-16,11,0";
string[] parts = input.Split(',');
Console.WriteLine(parts[1]);

输出:

12-JUL-16

Demo