• TStringBuilder类 Delphi


    摘自万一老师的博客,略作整理。

    //TStringBuilder.Create 可以无参数
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('Embarcadero');
      sb.Append(' CodeGear');
      sb.Append(' Delphi');
      sb.Append(' 2009');
    
      ShowMessage(sb.ToString); {Embarcadero CodeGear Delphi 2009}
      sb.Free;
    end;
    
    //TStringBuilder.Create 可用字符串初始化; 其他重载用处不大
    procedure TForm1.Button2Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create('Delphi ');
      sb.Append(2009);
    
      ShowMessage(sb.ToString); {Delphi 2009}
      sb.Free;
    end;
    
    //TStringBuilder.Append 可以添加几乎所有数据类型, 甚至是对象
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sb1,sb2: TStringBuilder;
      ver: Cardinal;
    begin
      sb1 := TStringBuilder.Create;
      sb2 := TStringBuilder.Create;
    
      sb1.Append('Delphi ');
      ver := 2009;
      sb1.Append(ver);
      ShowMessage(sb1.ToString); {Delphi 2009}
    
      sb2.Append(sb1);
      {换行}
      sb2.AppendLine;
      sb2.Append(Self);
      ShowMessage(sb2.ToString); {Delphi 2009
                                  TForm1}
    
      sb1.Free;
      sb2.Free;
    end;
    
    //TStringBuilder.Append 截取字符数组和字符串
    procedure TForm1.Button2Click(Sender: TObject);
    const
      CharArr: array[0..6] of Char = ('A','B','C','D','E','F','G');
      Str = 'ABCDEFG';
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append(CharArr, 2, 3);
      ShowMessage(sb.ToString); {CDE}
    
      {清空}
      sb.Length := 0;
    
      sb.Append(Str, 2, 3);
      ShowMessage(sb.ToString); {CDE}
    
      sb.Free;
    end;
    
    //TStringBuilder.Append 添加指定数目的字符
    procedure TForm1.Button3Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('A', 10);
      ShowMessage(sb.ToString); {AAAAAAAAAA}
      sb.Free;
    end;
    
    //TStringBuilder.Append 试试其他数据类型
    procedure TForm1.Button4Click(Sender: TObject);
    var
      sb: TStringBuilder;
      b: Boolean;
      r: Real;
    begin
      sb := TStringBuilder.Create;
    
      b := True;
      sb.Append(b);
      sb.AppendLine;
      b := not b;
      sb.Append(b);
      sb.AppendLine;
    
      r := 100/3;
      sb.Append(r);
    
      ShowMessage(sb.ToString); {True
                                 False
                                 33.3333333333333}
      sb.Free;
    end;
    
    //TStringBuilder.AppendFormat 的使用和 Format 函数是一样的
    procedure TForm1.Button5Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.AppendFormat('%s %d', ['Delphi', 2009]);
      ShowMessage(sb.ToString); {Delphi 2009}
      sb.Free;
    end;
    
    
    //TStringBuilder.Replace 替换字符串
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('从 Delphi 2007 到 Delphi 2009');
    
      sb.Replace('Delphi', 'CBuilder');
      ShowMessage(sb.ToString);         {从 CBuilder 2007 到 CBuilder 2009}
    
      sb.Free;
    end;
    
    //TStringBuilder.Replace 替换字符
    procedure TForm1.Button2Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('从 Delphi 2007 到 Delphi 2009');
    
      sb.Replace('0', '9');
      ShowMessage(sb.ToString);         {从 Delphi 2997 到 Delphi 2999}
    
      sb.Free;
    end;
    
    //TStringBuilder.Replace 在指定范围内替换字符
    procedure TForm1.Button3Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('ABABABABABAB');
    
      sb.Replace('A', '-', 4, 5);
      ShowMessage(sb.ToString);    {ABAB-B-B-BAB}
    
      sb.Free;
    end;
    
    //TStringBuilder.Replace 在指定范围内替换字符串
    procedure TForm1.Button4Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('ABC123ABC123ABC123');
    
      sb.Replace('ABC', '-', 3, 12);
      ShowMessage(sb.ToString);      {ABC123-123-123}
    
      sb.Free;
    end;
    
    
    //TStringBuilder 的插入与删除
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create;
      sb.Append('CodeGear 2007');
    
      sb.Insert(Length('CodeGear '), 'Delphi ');
      ShowMessage(sb.ToString);      {CodeGear Delphi 2007}
    
      sb.Remove(Length('CodeGear Delphi'), Length(' 2007'));
      ShowMessage(sb.ToString);      {CodeGear Delphi}
    
      sb.Insert(sb.Length, ' 2009');
      ShowMessage(sb.ToString);      {CodeGear Delphi 2009}
    
      sb.Free;
    end;
    
    
    //TStringBuilder.CopyTo
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sb: TStringBuilder;
      arr: TCharArray;
      i: Integer;
    begin
      sb := TStringBuilder.Create;
      sb.Append('123456789');
    
      SetLength(arr, 9);
      for i := Low(arr) to High(arr) do arr[i] := '*';
    
      sb.CopyTo(3, arr, 1, 5);
      ShowMessage(PChar(arr));   {*45678***}
    
      sb.Free;
    end;
    
    //TStringBuilder.Chars
    procedure TForm1.Button2Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create('Delphi 2009');
    
      ShowMessage(sb.Chars[0]);             {D}
      ShowMessage(sb.Chars[sb.Length - 1]); {9}
    
      sb.Free;
    end;
    
    
    //TStringBuilder.ToString 可以带参数
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create('123456789');
    
      ShowMessage(sb.ToString);       {123456789}
      ShowMessage(sb.ToString(3, 4)); {4567}
    
      sb.Free;
    end;
    工作生活中,需要写个程序的时候就编个; 编写的过程中,需要用到的不会的就去网上搜个; 任务完成就好,不求闻达。
  • 相关阅读:
    基础笔记8(二)(容器-引用类型的排序)
    OO的五大原则是指SRP、OCP、LSP、DIP、ISP。
    基础笔记9(泛型)
    insert statements will fail to restore data from temporary table. you must correct statements preceded by a warning comment in spcript.
    sqlserver 官方文档
    sqlserver 时间格式转换汇总:日、周、月、年、小时、分钟、秒 等。
    sqlserver查询一天中时间最大的那行数据
    PowerDesigner设计表时显示注释列Comment(转载)
    无法访问网页:多是域名或ip地址错误。
    远程报错,本地完全没问题,多是配置文件错误!
  • 原文地址:https://www.cnblogs.com/sures/p/6044917.html
Copyright © 2020-2023  润新知