2012-02-20 22 views
9

チャットボットの場合、誰かが「!say」と言うと、スペースの後ろにあなたの言うことを暗唱します。シンプル。最初のスペースで文字列を分割する

例入力:

!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#では何も書かれていません)

答えて

27

"最大"パラメータを持つs.Splitのオーバーロードを使用します。

それはこの1つです:あなたはそのためstring.Substringメソッドを使用することができます

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 
+0

は 'S'ない万一のよう http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx

が見えます'(s、2)'はcharですか? –

+0

はい、スペースでなければなりません。答えを訂正してください... –

+5

Split taking(char、int)のオーバーロードはありません。あなたはたぶん 's.Split(new [] {''}、2)' –

2
var value = "say this is a test"; 
return value.Substring(value.IndexOf(' ') + 1); 
関連する問題