首页 > 解决方案 > C#让每个字母后面都有一个空格

问题描述

我写了一个代码,应该在每个字符之后写一个空格。但它看起来不像它正在工作。

foreach (char c in texttoencodedecode.Text)
{
    c += " ";
    texttoencodedecode.Text += c
}

可悲的是,这不起作用。c += ""; 输出错误。希望你能帮助我干杯。

标签: c#

解决方案


Thechar c是单个字符(它是固定的,你不能有一个 zero-length char,你不能有一个 two-length char),所以你不能“添加”到它。你甚至不能修改你正在做的变量foreach(所以你不能修改texttoencodedecode.Text),你会Exception在运行时得到一个。解决方案是写入一个新的临时变量,temp然后重新texttoencodedecode.Text分配temp

string temp = string.Empty;

foreach (char c in texttoencodedecode.Text)
{
    temp += c;
    temp += " ";
}

texttoencodedecode.Text = temp;

现在......通常你应该使用 a StringBuilder,因为多次“附加”到 astring是“坏的”(strings 不是为它构建的):

var sb = new StringBuilder();

foreach (char c in texttoencodedecode.Text)
{
    sb.Append(c);
    sb.Append(' ');
}

texttoencodedecode.Text = sb.ToString();

推荐阅读