在第一个空格处划分一个字符串

时间:2012-02-20 18:48:43

标签: c# regex string split

对于聊天机器人,如果有人说“!说”它会在空间后背诵你所说的内容。简单。

示例输入:

!say this is a test

期望的输出:

this is a test

为了论证,字符串可以表示为ss.Split(' ')生成一个数组。

s.Split(' ')[1]只是空格后的第一个单词,是否有关于在第一个空格之后完全划分并获取所有单词的任何想法?

我尝试过这样的事情:

s.Split(' ');
for (int i = 0; i > s.Length; i++)
{
    if (s[i] == "!say")
    {
        s[i] = "";
    }
}

输入是:

!say this is a test

输出:

!say

这显然不是我想要的:p

(我知道这个问题有几个答案,但没有用C#从我搜索的地方写的。)

4 个答案:

答案 0 :(得分:31)

使用具有“最大”参数的s.Split的重载。

就是这个: http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx

看起来像:

var s = "!say this is a test";
var commands = s.Split (' ', 2);

var command = commands[0];  // !say
var text = commands[1];     // this is a test

答案 1 :(得分:8)

您可以使用string.Substring方法:

s.Substring(s.IndexOf(' '))

答案 2 :(得分:3)

var value = "say this is a test";
return value.Substring(value.IndexOf(' ') + 1);

答案 3 :(得分:0)

这段代码对我有用。我添加了 new [] ,它可以正常工作

var s = "!say this is a test";
var commands = s.Split (new [] {' '}, 2);

var command = commands[0];  // !say
var text = commands[1];     // this is a test