html替换字符串中的字符,替换HTML字符串中的字符 – 除标记外

编辑:看起来我错了 – UniqueString不是问题.实际的瓶颈似乎是按字符访问字符串.鉴于我的整个答案都是无关紧要的,我完全取而代之.

如果您使用PChar避免重新计算字符串偏移量,同时仍然通过Txt [Idx]更新字符串,则该方法要快得多(在我的1000次运行测试中为5秒至0.5秒).

这是我的版本:

procedure TForm1.btn1Click(Sender: TObject);

var

Idx: Integer;

Tag: Boolean;

p : PChar;

Txt : string;

begin

Tag := False;

Txt := Mem1.Text;

p := PChar(txt);

Dec(p);

For Idx := 0 to Length(Txt) - 1 Do

Begin

Inc(p);

If (not Tag and (p^ = '

Tag := True;

Continue;

end

Else If (Tag and (p^ = '>')) Then

Begin

Tag := False;

Continue;

end;

If Tag Then Continue;

If (not (p^ in [#10, #13, #32])) Then begin

Txt[Idx] := '0';

end;

end;

mem2.Text := Txt;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值