【问题标题】:Inserting a certain character in between every character in a textbox在文本框中的每个字符之间插入某个字符
【发布时间】:2019-12-11 08:02:28
【问题描述】:

所以在这个例子中,我尝试编写一个程序,在某个文本框 (textBox1) 中的每个字符之间插入一个“*”。虽然我很难弄清楚。是的,我已经环顾了堆栈溢出,似乎没有什么与我正在尝试做的事情相关/工作。

这是我目前拥有的代码:

for (int i = 1; i <= textBox1.Text.Length; i += 1)
        {
            textBox2.Text = textBox1.Text.Insert(i, "*");
            i++;
        }

这是当前代码的作用的图片:

【问题讨论】:

  • 尝试反向使用 for 子句。 ( int i = textBox1.length; i > 0 ; i-- )
  • 我将 textbox1.Text 复制到一个字符串中,处理一个字符串,然后将其写入 textbox2。
  • 而且你不会在重复区域上插入 i++ 因为它已经在 for 子句 ( i += 1 )
  • 你只得到一颗星,因为你只是将 textbox2.Text 设置为 textbox1.Text + 一颗星:你永远不会在你已经添加的同一个字符串中添加更多星修改。

标签: c#


【解决方案1】:

很容易做到...

textBox2.Text = string.Join('*', textBox1.Text.ToCharArray())

【讨论】:

  • 这实际上比我的回答要好。几个小点; 1)我相信第一个参数是'string`,2)你可以简单地做textBox1.Text.ToArray()
  • @Sach 1) 它可以带一个字符,2) ToCharArray 通常是我的偏好,查看差异检查...stackoverflow.com/questions/37139053/…
【解决方案2】:

你做了很多不必要的事情。我在控制台上使用两个字符串而不是文本框,但想法是一样的。

var tb1Text = "hello";
var tb2Text = string.Empty;

foreach (var ch in tb1Text)
{
    tb2Text += ch + "*";
}
tb2Text = tb2Text.TrimEnd(new char[] { '*' });

我们遍历string(因为string 本质上是char 的数组),并将其与尾随* 一起添加到tb2Text。如果您不想在最后添加*,请使用最后一行代码,否则请删除它。

结果

tb1Text = hello

tb2Text = h*e*l*l*o

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-14
    • 2013-05-01
    • 1970-01-01
    • 2020-01-31
    • 2015-02-20
    • 2018-09-26
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多