zoukankan      html  css  js  c++  java
  • 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;
    工作生活中,需要写个程序的时候就编个; 编写的过程中,需要用到的不会的就去网上搜个; 任务完成就好,不求闻达。
  • 相关阅读:
    Java实现 洛谷 P1060 开心的金明
    (Java实现) 洛谷 P1605 迷宫
    (Java实现) 洛谷 P1605 迷宫
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
    Java实现 洛谷 P1064 金明的预算方案
    (Java实现) 洛谷 P1031 均分纸牌
    QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
    武则天红人对唐睿宗的桃色报复(如此缺少城府,注定了要在宫廷中过早地出局)
  • 原文地址:https://www.cnblogs.com/sures/p/6044917.html
Copyright © 2011-2022 走看看