Stringbuilder忽略最后一个空格

时间:2012-11-02 16:30:57

标签: c# .net stringbuilder

我正在初始化StringBuilder,如下所示:

StringBuilder builder = new StringBuilder("Symptoms are ");

在此之后,我遍历一个列表并使用

将每个字符串项添加到最后
foreach(var item in list)
{
    builder.Append(item);
}

示例item会像“头痛”一样,但一旦我将其附加到“症状是”并称为builder.ToString(),它会显示:

"Symptoms areHeadache...etc"

而不是

"Symptoms are Headache...etc"

为什么忽略这个空间?

2 个答案:

答案 0 :(得分:1)

由于你提供的代码没有产生你所描述的问题,我猜你的实际的问题是症状(项目)之间缺少空白。在这种情况下,我建议使用String.Join(),如下所示:

var output = String.Format("Symptoms are {0}.", String.Join(", ", items));

现在,您的项目将以逗号分隔,并在之间填充空格。

答案 1 :(得分:0)

它不需要占用其他PC上的空间。也许试试一台新电脑。

StringBuilder builder = new StringBuilder("Symptoms are ");
List<string> list = new List<string>() { "headache", "corrupt memory" };

foreach(var item in list)
{
        builder.Append(item);
}
System.Diagnostics.Debug.WriteLine(builder.ToString());