C#中StringBuilder类remove方法的使用问题

lcfan123 2010-11-16 09:34:07
class Program
{
public static String DelAllSpace(string str)
{
//使用StringBuilder类提供的有关方法实现功能
StringBuilder b = new StringBuilder(str);
for (int i = 0; i < b.Length; i++)
{
if (b[i] == ' ')
{
b.Remove(i,1);
i++;
}
}
return b.ToString();
}

static void Main()
{
string a = "a dd e eer";
Console.WriteLine(DelAllSpace(a));
}
}
运行程序为什么显示add e eer
...全文
687 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcfan123 2010-11-23
  • 打赏
  • 举报
回复
谢谢大家了,我后来发现这个错误了!
colorall 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ahui_chuanshuo 的回复:]
public static String DelAllSpace(string str)
{
//使用StringBuilder类提供的有关方法实现功能
StringBuilder b = new StringBuilder(str);
for (int i = 0; i < b.Length; i++)
{
if (b[i] == ' ')
{
//你每次使用StringBuil……
[/Quote]我也犯过这个错误
兔子-顾问 2010-11-16
  • 打赏
  • 举报
回复
b.Remove(i,1);
i++;
这里修改为
b.Remove(i,1);
i--;

花满楼 2010-11-16
  • 打赏
  • 举报
回复
public static String DelAllSpace(string str)
{
//使用StringBuilder类提供的有关方法实现功能
StringBuilder b = new StringBuilder(str);
for (int i = 0; i < b.Length; i++)
{
if (b[i] == ' ')
{
//你每次使用StringBuilder对象的 Remove(Index,Num)方法,StringBuilder的Length属性会相应的减小Num
b.Remove(i,1);
//Num为1
i--;
}
}
return b.ToString();
}
coregao0220 2010-11-16
  • 打赏
  • 举报
回复
try
if (b[i] == ' ')
{
b.Remove(i,1);
i--;
}
xu56180825 2010-11-16
  • 打赏
  • 举报
回复
这个我觉得你因该直接判断他的ASCII值

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧