我想从文本框中取一个字符串(txtFrom)并保存第一个单词并保存另一个部分留下的内容。 (剩下的就是通过第一个空间的一切)
示例string =“Bob jones去了商店”
array [0]会给“Bob” array [1]会给“jones去商店”
我知道有string[] array = txtFrom.Split(' ');
,但是这给了我一个包含6个单词的数组。
答案 0 :(得分:37)
像这样使用String.Split(Char[], Int32)
重载:
string[] array = txtFrom.Text.Split(new char[]{' '},2);
答案 1 :(得分:3)
您只需将分组与连接组合以获取第一个元素:
string[] items = source.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
string firstItem = items[0];
string remainingItems = string.Join(" ", items.Skip(1).ToList());
你只需要取第一项,然后将余数重新改成字符串。
答案 2 :(得分:1)
String.Split()
方法有一个重载,它接受一个表示要返回的子串数的整数。
因此,您的方法调用将变为:string[] array = txtFrom.Text.Split(' ', 2);
答案 3 :(得分:1)
char[] delimiterChars = { ' ', ',' };
string text = txtString.Text;
string[] words = text.Split(delimiterChars, 2);
txtString1.Text = words[0].ToString();
txtString2.Text = words[1].ToString();
答案 4 :(得分:0)
您也可以尝试使用RegularExpressions
Match M = System.Text.RegularExpressions.Regex.Match(source,"(.*?)\s(.*)");
M.Groups[1] //Bob
M.Groups[2] // jones went to the store
正则表达式匹配第一个空格的所有内容并将其存储在第一个空格中? mark告诉它使最小的匹配成为可能。第二个句子抓住空格后的所有内容并将其存储在第二组
中