拆分并加入C#字符串

时间:2012-10-18 19:02:12

标签: c# arrays string

  

可能重复:
  First split then join a subset of a string

我正在尝试将字符串拆分为数组,取出第一个元素(使用它),然后将数组的其余部分连接成一个单独的字符串。

示例:

theString = "Some Very Large String Here"

将成为:

theArray = [ "Some", "Very", "Large", "String", "Here" ]

然后我想在变量中设置第一个元素,稍后再使用它。

然后我想将数组的其余部分加入一个新字符串。

所以它会变成:

firstElem = "Some";
restOfArray = "Very Large String Here"

我知道我可以使用theArray[0]作为第一个元素,但是如何将数组的其余部分合并为一个新字符串?

3 个答案:

答案 0 :(得分:152)

您可以使用string.Splitstring.Join

string theString = "Some Very Large String Here";
var array = theString.Split(' ');
string firstElem = array.First();
string restOfArray = string.Join(" ", array.Skip(1));

如果你知道你总是只想分开第一个元素,你可以使用:

var array = theString.Split(' ', 2);

这使得您无需加入:

string restOfArray = array[1];

答案 1 :(得分:21)

嗯,这是我的“回答”。它使用的事实是String.Split可以被告知持有它应该拆分的许多项目(我发现其他答案中缺少这些项目):

string theString = "Some Very Large String Here";
var array = theString.Split(new [] { ' ' }, 2); // return at most 2 parts
// note: be sure to check it's not an empty array
string firstElem = array[0];
// note: be sure to check length first
string restOfArray = array[1];

这与Substring方法非常相似,只是采用了不同的方法。

答案 2 :(得分:6)

您可以拆分并加入字符串,但为什么不使用子字符串?然后你最终得到一个分裂而不是将字符串分成5个部分并重新加入它。最终结果是一样的,但子字符串可能会快一点。

        string lcStart = "Some Very Large String Here";
        int lnSpace = lcStart.IndexOf(' ');
        if (lnSpace > -1)
        {
            string lcFirst = lcStart.Substring(0, lnSpace);
            string lcRest = lcStart.Substring(lnSpace + 1);
        }