0

我正在使用 Split 来选择长字符串的不同部分。然后我还使用 Split 再次将相同的字符串重建回长字符串,但没有字符串的第一部分

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

我正在使用的字符串

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

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

4

3 回答 3

7

你把事情复杂化了:

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

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

info = info.Remove(0, info.IndexOf(',') + 1);
于 2012-06-08T06:25:23.320 回答
1

我想您不知道子字符串的长度,但是您想删除第一个逗号之前的所有内容(包括逗号),所以最简单的做法可能是寻找这个逗号的位置,然后取走之后的所有内容:

int idx = info.IndexOf(',');
string result = info.Substring(idx + 1);
于 2012-06-08T06:28:38.360 回答
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);

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

    var firstComma=str.IndexOf(',');
    var newStr=str.Substring(firstComma+1);
    var firstStr=str.Substring(0,firstComma);
于 2012-06-08T06:33:15.023 回答