我想从字符串值中删除空格。例如,sString := 'Hello my name is Bob
应该变为sString := 'HellomynameisBob
。
我尝试使用while循环:
iPos := pos(' ', sString);
while iPos > 0 do
Delete(sString,iPos,1);
但程序冻结了。
答案 0 :(得分:16)
程序冻结是因为你永远不会增加循环中的iPos
。
最简单的解决方案是使用SysUtils
- StringReplace
(reference)中声明的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'
。