可能重复:
首先拆分然后加入字符串的子集
我正在尝试将一个字符串拆分成一个数组,取出第一个元素(使用它),然后将数组的其余部分连接成一个单独的字符串.
例:
theString = "Some Very Large String Here"
Run Code Online (Sandbox Code Playgroud)
会成为:
theArray = [ "Some", "Very", "Large", "String", "Here" ]
Run Code Online (Sandbox Code Playgroud)
然后我想在变量中设置第一个元素并在以后使用它.
然后我想将数组的其余部分加入一个新字符串.
所以它会成为:
firstElem = "Some";
restOfArray = "Very Large String Here"
Run Code Online (Sandbox Code Playgroud)
我知道我可以theArray[0]
用于第一个元素,但是如何将数组的其余部分合并为一个新字符串?
Ree*_*sey 166
你可以使用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));
Run Code Online (Sandbox Code Playgroud)
如果你知道你总是只想分开第一个元素,你可以使用:
var array = theString.Split(' ', 2);
Run Code Online (Sandbox Code Playgroud)
这使得您无需加入:
string restOfArray = array[1];
Run Code Online (Sandbox Code Playgroud)
小智 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];
Run Code Online (Sandbox Code Playgroud)
这与Substring
方法非常相似,只是通过不同的方法.
您可以拆分并加入字符串,但为什么不使用子字符串?然后你最终得到一个分裂而不是将字符串分成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);
}
Run Code Online (Sandbox Code Playgroud)