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

Tak*_* M. 12 c# regex string split

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

输入示例:

!say this is a test
Run Code Online (Sandbox Code Playgroud)

期望的输出:

this is a test
Run Code Online (Sandbox Code Playgroud)

字符串可以表示为s参数.s.Split(' ')产生一个数组.

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

我尝试过这样的事情:

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

输入是:

!say this is a test
Run Code Online (Sandbox Code Playgroud)

输出:

!say
Run Code Online (Sandbox Code Playgroud)

这显然不是我想要的:p

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

Bry*_*her 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
Run Code Online (Sandbox Code Playgroud)

  • Split没有超载(char,int).你可能意味着`s.Split(new [] {''},2)` (5认同)

Mar*_*zek 8

您可以使用string.Substring方法:

s.Substring(s.IndexOf(' '))
Run Code Online (Sandbox Code Playgroud)