0
    Text = textBox.Text;

    if (Text.StartsWith("!say"))
    {
        string[] CurrentText = Text.Trim().Split(' ');
        label1.Text = CurrentText[1];
        label2.Text = CurrentText[2] += CurrentText[3];
    }

我已经做了很多搜索,这可能很容易,但我找不到任何东西,但我希望将 CurrentText[2] 之后的任何内容放入label2.Text,而不仅仅是第二个和第三个,有没有办法做到这一点?另外,我怎样才能保持中间的空格(比如如果我把"!say Hello Hello World!"出来的

  label1 = Hello  

  label2 = Hello World!    

与空间。

4

4 回答 4

2

尝试

label2.Text = String.Join(" ", CurrentText.Skip(2).ToArray());

由于数组索引是从零开始的CurrentText[0]CurrentText[1]因此必须跳过。

于 2012-09-14T21:15:02.723 回答
1

如果你只需要关心第一个“”,为什么不使用这个:

int index = Text.IndexOf(" ");

label1.Text = text.Substring(0, index);
label2.Text = text.Substring(index + 1);
于 2012-09-14T21:13:37.343 回答
0

文本 = 文本框.文本;

if (Text.StartsWith("!say"))
{
    string[] CurrentText = Text.Trim().Split(' ');
    label1.Text = CurrentText[1];
    label2.Text = string.Join(", ", CurrentText.Skip(2).ToArray());
} 

这会有所帮助。

于 2012-09-14T21:17:08.373 回答
0

你是这个意思吗?

label2.Text += string.Join(" ", CurrentText, 1, CurrentText.Length-1);

对我来说,在这种情况下,Linq 似乎有点矫枉过正。

于 2012-09-14T21:30:01.710 回答