Разделите строку на первый пробел - PullRequest
12 голосов
/ 20 февраля 2012

Для чат-бота, если кто-то скажет "! Скажи", он будет читать то, что вы говорите после пробела.Простой.

Пример ввода:

!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 #, откуда я искал.)

Ответы [ 4 ]

31 голосов
/ 20 февраля 2012

Использовать перегрузку 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
8 голосов
/ 20 февраля 2012

Вы можете использовать метод string.Substring для этого:

s.Substring(s.IndexOf(' '))
3 голосов
/ 20 февраля 2012
var value = "say this is a test";
return value.Substring(value.IndexOf(' ') + 1);
0 голосов
/ 03 апреля 2018

Этот код работает для меня.Я добавил новый [] , и он работает

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...