Delphi StringBuilder [英] Delphi StringBuilder

查看:141
本文介绍了Delphi StringBuilder的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Delphi中存在像Java或C#StringBuilder这样的东西?或者Delphi不需要StringBuilder和 s:= s +'一些字符串'; 是很好的表达式(主要是for,while循环)。


是的,Delphi提供TStringBuilder(自2009版本):

  procedure TestStringBuilder; 
var
I:整数;
StringBuilder:TStringBuilder;
begin
StringBuilder:= TStringBuilder.Create;
尝试
为I:= 1到10 do
begin
StringBuilder.Append('a string');
StringBuilder.Append(66); //添加一个整数
StringBuilder.Append(sLineBreak); //添加新行
end;

OutputWriteLine('Final string builder length:'+
IntToStr(StringBuilder.Length));
finally
StringBuilder.Free;
结束
结束

更多信息(基准):

http://www.monien.net/blog/index.php/2008/10/delphi-2009-tstringbuilder/



是的,你是对的。 s:= s +'text'; 并不比使用TStringBuilder慢得多。


Exists in Delphi something like the Java or C# StringBuilder? Or Delphi does not need StringBuilder and s := s + 'some string'; is good expression (mainly in for, while loops).

解决方案

Yes, Delphi offers TStringBuilder (since version 2009):

procedure TestStringBuilder;
var
  I: Integer;
  StringBuilder: TStringBuilder;
begin
  StringBuilder := TStringBuilder.Create;
  try
    for I := 1 to 10 do
    begin
      StringBuilder.Append('a string ');
      StringBuilder.Append(66); //add an integer
      StringBuilder.Append(sLineBreak); //add new line
    end;

    OutputWriteLine('Final string builder length: ' +
                    IntToStr(StringBuilder.Length));
  finally
    StringBuilder.Free;
  end;
end;

Further information (benchmark):
http://www.monien.net/blog/index.php/2008/10/delphi-2009-tstringbuilder/.

And yes, you are right. s := s + 'text'; isn't really slower than using TStringBuilder.

这篇关于Delphi StringBuilder的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆