对于聊天机器人,如果有人说“!说”它会在空间后背诵你所说的内容。简单。
示例输入:
!say this is a test
期望的输出:
this is a test
为了论证,字符串可以表示为s
。 s.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#从我搜索的地方写的。)
答案 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