使用StringBuilder构建的字符串中删除最后一个字符的最佳方法

127

我有以下内容

data.AppendFormat("{0},",dataToAppend);

问题在于我正在循环中使用它,会有一个尾随逗号。有什么最好的方法可以删除尾随逗号吗?

我是否需要将数据更改为字符串,然后对其进行子字符串操作?


12
string.Join(",", yourCollection) 的意思是将 yourCollection 集合中的元素用逗号连接成一个字符串。 - Vlad
1
你尝试过访问https://dev59.com/zW025IYBdhLWcg3w9quQ吗? - andreister
1
@Chris:这样你根本不需要使用 StringBuilder。 - Vlad
也许你可以避免在后面删除逗号,而是在连接字符串时就不要添加它。参考:https://dev59.com/L3RB5IYBdhLWcg3wl4EP(Jon Skeet的回答) - Paolo Falabella
@Vlad 对不起,我看错了;我以为你是建议修改最终生成的字符串,而不是完全替换他的循环。(我以为我及时删除了我的评论,看来没有!) - Chris Sinclair
显示剩余3条评论
13个回答

2

你有两个选择。第一种方法非常简单,使用Remove方法非常有效。第二种方法是使用带有起始索引和结束索引的ToString方法(MSDN文档)。


2

0

将 StringBuilder 的长度简单地减少 1 个字符;

 StringBuilder sb = new StringBuilder();
 sb.Length--;

我知道这不是一个有效的方法,因为它会转换为 sb = sb-1;

替代的有效解决方案

sb.Remove(starting_index, how_many_character_to_delete);

对于我们的情况,它将是

sb.Remove(sb.length-1,1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接