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

时间:2012-06-03 07:02:32

标签: c#

我想知道是否可以使用split来分隔一个字符串,其中包含几个用逗号分隔的部分,如下所示:

title, genre, director, actor

我只想要第一部分,每个字符串的标题而不是其余部分?

4 个答案:

答案 0 :(得分:53)

string valueStr = "title, genre, director, actor";
var vals = valueStr.Split(',')[0];

vals将为您提供标题

答案 1 :(得分:20)

实际上,有一种比拆分更好的方法:

public string GetFirstFromSplit(string input, char delimiter)
{
    var i = input.IndexOf(delimiter);

    return i == -1 ? input : input.Substring(0, i);
}

作为扩展方法:

public static string FirstFromSplit(this string source, char delimiter)
{
    var i = source.IndexOf(delimiter);

    return i == -1 ? source : source.Substring(0, i);
}

public static string FirstFromSplit(this string source, string delimiter)
{
    var i = source.IndexOf(delimiter);

    return i == -1 ? source : source.Substring(0, i);
}

用法:

string result = "hi, hello, sup".FirstFromSplit(',');
Console.WriteLine(result); // "hi"

答案 2 :(得分:6)

你可以这样做:

var str = "Doctor Who,Fantasy,Steven Moffat,David Tennant";

var title = str.Split(',').First();

你也可以这样做:

var index = str.IndexOf(",");
var title = index < 0 ? str : str.Substring(0, index);

答案 3 :(得分:0)

这是我设法建立的两个选项,既没有使用var类型的麻烦,也没有使用其他变量的行:

string f = "aS.".Substring(0, "aS.".IndexOf("S"));
Console.WriteLine(f);

string s = "aS.".Split("S".ToCharArray(),StringSplitOptions.RemoveEmptyEntries)[0];
Console.WriteLine(s);

这就是它的作用:

enter image description here