C# 将字符串拆分为两部分

C# 将字符串拆分为两部分,c#,.net,C#,.net,我想从文本框(txtFrom)中提取一个字符串,保存第一个单词,并保存其他部分中剩下的内容。(剩下的就是第一个空格以外的所有内容) 示例string=“鲍勃·琼斯去了商店” 数组[0]将给出“Bob” 数组[1]会给出“琼斯去商店了” 我知道有string[]array=txtFrom.Split(“”),但这给了我一个包含6个单词的数组。您只需将拆分与联接结合起来,即可获得第一个元素: string[] items = source.Split(new char[] { ' ' }, Stri

我想从文本框(txtFrom)中提取一个字符串,保存第一个单词,并保存其他部分中剩下的内容。(剩下的就是第一个空格以外的所有内容)

示例string=“鲍勃·琼斯去了商店”

数组[0]将给出“Bob”
数组[1]会给出“琼斯去商店了”


我知道有
string[]array=txtFrom.Split(“”),但这给了我一个包含6个单词的数组。

您只需将拆分与联接结合起来,即可获得第一个元素:

string[] items = source.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

string firstItem = items[0];
string remainingItems = string.Join(" ", items.Skip(1).ToList());
您只需获取第一项,然后将剩余项重新组合成字符串。

使用
string.Split(Char[],Int32)
重载如下:

string[] array = txtFrom.Text.Split(new char[]{' '},2);

该方法有一个重载,它接受一个表示要返回的子字符串数量的整数


因此,您的方法调用将变成:
string[]array=txtFrom.Text.Split(“”,2)

您也可以尝试正则表达式

Match M = System.Text.RegularExpressions.Regex.Match(source,"(.*?)\s(.*)");
M.Groups[1] //Bob
M.Groups[2] // jones went to the store

正则表达式将所有内容匹配到第一个空间,并将其存储在第一个组中?马克告诉它尽可能地缩小匹配范围。第二个子句获取空格后的所有内容并将其存储在第二个组中

我认为您希望在联接中使用空格分隔符。这是一个很好的答案,尽管OP使用空格作为分隔符,而不是逗号。我觉得你的例子很清楚。是的,我通常用逗号,我的错!这个世界上逗号分隔的字符串太多了!
char[] delimiterChars = { ' ', ',' };
string text = txtString.Text;

string[] words = text.Split(delimiterChars, 2);

txtString1.Text = words[0].ToString();
txtString2.Text = words[1].ToString();