2011-05-06 115 views
8

我想从文本框(txtFrom)中取一个字符串并保存第一个单词并保存其他部分中剩下的任何内容。 (在任何剩下的就是一切经过第一空间)仅将字符串拆分为2部分

例字符串=“鲍勃·琼斯去商店”

数组[0]将给出“鲍勃”
阵列[1]将给出“琼斯去商店“

我知道有string[] array = txtFrom.Split(' ');,但是这给了我一个单独的单词6阵列。

回答

3

您只需要将一个分裂与加入拿到的第一个元素:

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

string firstItem = items[0]; 
string remainingItems = string.Join(" ", items.Skip(1).ToList()); 

您只需采取的第一项,然后改革余回字符串。

+1

我认为你想在你的连接中使用空格分隔符。 – 2011-05-06 03:54:19

+0

尽管OP使用空格作为分隔符而不是逗号,这是一个很好的答案。我认为你的例子很清楚。 – Pete 2011-05-06 03:58:54

+0

是的,我通常做一个逗号,我的坏!这个世界太多逗号分隔的字符串! – Tejs 2011-05-06 14:41:54

1

还有就是String.Split()方法,其接受表示串以返回的数量的整数的过载。

所以,你的方法调用将成为:string[] array = txtFrom.Text.Split(' ', 2);

0

您也可以尝试RegularExpressions

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

的正则表达式匹配一切到第一空间,并将其存储在第一组中?标记告诉它使最小的匹配成为可能。第二个条款抓住空间后的所有内容,并将其存储在第二组中

0
char[] delimiterChars = { ' ', ',' }; 
string text = txtString.Text; 

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

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

你应该添加一个解释... – 2014-06-23 16:27:15