如何从字符串中删除空格?

时间:2013-10-08 10:13:52

标签: string delphi

我想从字符串值中删除空格。例如,sString := 'Hello my name is Bob应该变为sString := 'HellomynameisBob

我尝试使用while循环:

iPos := pos(' ', sString);
while iPos > 0 do
Delete(sString,iPos,1);

但程序冻结了。

3 个答案:

答案 0 :(得分:16)

程序冻结是因为你永远不会增加循环中的iPos

最简单的解决方案是使用SysUtils - StringReplacereference)中声明的Delphi函数,如下所示:

newStr := StringReplace(srcString, ' ', '', [rfReplaceAll]); //Remove spaces

答案 1 :(得分:4)

iPos := pos(' ', sString);
while iPos > 0 do begin
  Delete(sString,iPos,1);
  iPos := pos(' ', sString);
end;

答案 2 :(得分:1)

虽然@Kromster 是对的,但这远不是处理这个问题的正确方法。 您应该在传递 sString 的地方使用 StringReplace 函数、要替换的字符、要替换的字符以及一些内置标志。所以你的代码应该是这样的:

sString := 'Hello my name is Bob;
newString := stringReplace(sString, ' ', '', [rfReplaceAll, rfIgnoreCase]);

newString 现在应该返回 'HellomynameisBob'