c# - 如何将文本框中的每个字符串转换为字符串?

标签 c# .net winforms

我尝试在 Form1 中这样做:

private void BtnScrambleText_Click(object sender, EventArgs e)
{
    textBox1.Enabled = false;
    BtnScrambleText.Enabled = false;

    StringBuilder sb = new StringBuilder();
    var words = textBox1.Text.Split(new char[] { ' ' });
    foreach (var w in words)
    {
        if (w == " ")
        {
            sb.Append(w);
            continue;
        }

        ScrambleTextBoxText scrmbltb = new ScrambleTextBoxText(w);
        scrmbltb.GetText();
        sb.Append(scrmbltb.scrambledWord);
        textBox2.AppendText(sb.ToString());
    }
}

我的新类(class)是 ScrambleTextBoxText,我只是从 textBox1 中得到一个词,随机打乱它,然后我将打乱的字添加回 textBox2

但在 textBox2 中,我看到一个长字符串中的所有单词,例如:

你好

单词之间完全没有空格。 我需要将它添加到 textBox2 中,并使用它在 textBox1 中的确切空格。

如果在 textBox1 中,例如:

丹尼你好你好是二四

moses daniel    yellow

所以在 textBox2 中它应该是同一行:

丹尼你好你好是二四

moses daniel    yellow

相同的空格,向下两行等等。

两个问题:

  1. textBox2 中没有空格

  2. 它会将我在 textBox1 中键入的任何单词添加到 textBox2,但它应该只添加从我的新类返回的单词:scrmbltb.scrambledWord

例如,如果我在 textBox1 中输入:嗨,丹尼尔

所以在 textBox2 中应该是:daniel 没有这个词:嗨

或者如果在 textBox1 中是:daniel hi hello 所以在 textBox2 中它将是:daniel hello

最佳答案

为什么不拆分它们并单独使用它呢?例如:

StringBuilder sb = new StringBuilder();
var words = textBox1.Text.Split(new char[] { ' ' });
foreach (var w in words)
{
    if (string.IsNullOrEmpty(w))
    {
        sb.Append(w);
        continue;
    }

    // do something with w
    sb.Append(w);
}

此算法将保留所有空格,但允许您在添加 w 之前对其进行操作。

关于c# - 如何将文本框中的每个字符串转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425853/

相关文章:

javascript - 从服务器调用 JQuery 函数 (asp.net)

c# - ?。 C# 中的运算符由于未知原因未编译

c# - 客户端支持 C# 7.0 所需的最低版本的 .NET

.net - 适用于 Windows Phone 8.1 的 WebBrowserTask

winforms - trap {}在winforms中不起作用

c# - DatagridView 更改未反射(reflect)在数据库中

c# - 显示计数(包括禁用的显示器)

c# - 如何从派生类中获取基类实例

c# - 解释 .Net 中的 DateTime.Now 设计

c# - 当用户只需要使用命令行时,如何加速 Windows 窗体应用程序的启动?