我正在使用Split来挑选一个长字符串的不同部分。然后,我还使用Split将相同的字符串重新构建回一个长字符串,但没有字符串的第一部分
string.Split(',')[1] + "," + string.Split(',')[2] + "," + string.Split(',')[3] ....
我正在使用的字符串
string info = "id,title,director,actor1,actor2,actor3,genre,runtime,year,comment";
我的问题是,是否有一种简单而不复杂的方法来重建字符串,而不像我那样使用Split?既然我希望字符串的所有部分都不包含第一部分,即id,那么应该有一种简单的方法来删除第一个逗号之前的所有内容?
发布于 2012-06-08 06:28:38
我假设您不知道子字符串的长度,但您想要删除第一个逗号之前的所有内容(包括逗号),因此最简单的做法可能是查找此逗号的位置,然后获取后面的所有内容:
int idx = info.IndexOf(',');
string result = info.Substring(idx + 1);
发布于 2012-06-08 06:25:23
你把事情搞得太复杂了:
info = info.SubString(info.IndexOf(',') + 1);
第一个更快,这个只是为了完整:
info = info.Remove(0, info.IndexOf(',') + 1);
发布于 2012-06-08 06:33:15
一遍又一遍地拆分同一个字符串是没有意义的。此外,可以使用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);
如果想要将第一个元素与字符串的其余部分分开,可以使用Substring:
var firstComma=str.IndexOf(',');
var newStr=str.Substring(firstComma+1);
var firstStr=str.Substring(0,firstComma);
https://stackoverflow.com/questions/10943945
复制