使用split创建新字符串

时间:2012-06-08 06:22:39

标签: c#

我使用Split来挑选长字符串的不同部分。然后我也使用Split将相同的字符串重新生成一个长字符串,但没有字符串的第一部分

string.Split(',')[1] + "," + string.Split(',')[2] + "," + string.Split(',')[3] ....

字符串I' m

string info = "id,title,director,actor1,actor2,actor3,genre,runtime,year,comment";

我的问题是,是否有一种简单而简单的方法来重建字符串而不像我那样使用Split?既然我想要字符串的所有部分而没有第一部分,即id,那么应该有一种简单的方法来删除第一个逗号之前的所有内容吗?

3 个答案:

答案 0 :(得分:7)

你的事情过于复杂:

info = info.SubString(info.IndexOf(',') + 1);

第一个更快,这个只是为了完整起见:

info = info.Remove(0, info.IndexOf(',') + 1);

答案 1 :(得分:1)

我想你不知道子串的长度,但是你想在第一个逗号(包括逗号)之前删除所有内容,所以最简单的事情就是寻找这个逗号的位置然后取之后的一切:

int idx = info.IndexOf(',');
string result = info.Substring(idx + 1);

答案 2 :(得分:1)

没有必要一遍又一遍地分割同一个字符串。此外,可以使用String.Join

来连接字符串

你写道:

var str="moo,id,title,director,actor1,actor2,actor3,genre,runtime,year,comment";
var parts=str.Split(',');
var newStr=String.Join(",",parts,1,parts.Length-1);
Console.WriteLine(newStr);

更好的方法是使用IndexOf查找','的第一个出现,并在第一个逗号后返回字符串:

    var newStr=str.Substring(str.IndexOf(',')+1);

如果要将第一个元素与字符串的其余部分分开,可以使用子字符串执行此操作:

    var firstComma=str.IndexOf(',');
    var newStr=str.Substring(firstComma+1);
    var firstStr=str.Substring(0,firstComma);