我正在尝试将字符串拆分为数组,取出第一个元素(使用它),然后将数组的其余部分连接成一个单独的字符串。
示例:
theString = "Some Very Large String Here"
将成为:
theArray = [ "Some", "Very", "Large", "String", "Here" ]
然后我想在变量中设置第一个元素,稍后再使用它。
然后我想将数组的其余部分加入一个新字符串。
所以它会变成:
firstElem = "Some";
restOfArray = "Very Large String Here"
我知道我可以使用theArray[0]
作为第一个元素,但是如何将数组的其余部分合并为一个新字符串?
答案 0 :(得分:152)
您可以使用string.Split
和string.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);
}