频道分类

Delphi delphi 学习大师QQ群讨论的字符串位置替换方法

作者:admin 来源: 日期:2020/2/24 12:30:34 人气: 标签:

 

感谢各位大师的倾囊相授 QQ群682628230

叫兽叔叔(378464060)  12:14:13

var str,str2,STR3:string;
begin
   str := '12345678';
   str2 := Copy( str,1,Length(str)-2)+'XXXX'  ;
   STR3 :=  Copy( str,Length(str)-2+2,2-1) ;
   str2 :=str2+ STR3 ;
   ShowMessage(str2);
end;

叫兽叔叔(378464060)  12:14:23
2代表位置。

 

 

 

 

叫兽叔叔(378464060)  12:24:11
var str,str2,STR3:string;
i:Integer;
begin
   str := '12345678';
   for i := 1 to Length(str) do
   begin
    if i=Length(str)-2+1 then
    str2 := str2+'xxx'
    else
    str2 := str2+str[i]

   end;
   ShowMessage(str2);
end;

叫兽叔叔(378464060)  12:24:37
方法千万,,总体来说COPY,MOVE 效率会高点。。

 

 

 

叫兽叔叔(378464060)  12:14:27
用COPY

 

 

 

河南-风 delphi学习网(16643506)  12:22:02
var
  Str:string;
  PosX:integer;
  AStr:String;
  ALen:Integer;
begin
   str:='字符串12345678';  //源字符串
   PosX:=Length(str);   //要替换的位置
   AStr:='XYZ' ;          //要替换的字符串
   ALen:= Length(str);
   if PosX<=ALen then
   begin
    Str:=LeftStr(str, ALen-PosX)  +AStr+RightStr(str, PosX-1);//
    Edit1.Text:=str;
   end;
end;

 

 

更高效的:


uses StrUtils ;
procedure TForm1.Button1Click(Sender: TObject);
var
  Str:string;
  PosX:integer;
  AStr:String;
  ALen:Integer;
  I:integer;
  T1,T2:Integer;
begin
   str:='字符串12345678';  //源字符串
   PosX:=3;   //要替换的位置
   AStr:='XYZ' ;          //要替换的字符串
   T1:=GetTickCount;
   for I := 0 to 100000 do
   begin
      ALen:= Length(str);
     if PosX<=ALen then
     begin
      Str:=LeftStr(str, ALen-PosX)  +AStr+RightStr(str, PosX-1);//
      //Edit1.Text:=str;
     end;
   end;
   T2:=GetTickCount;
   Button1.Caption:=IntToStr(T2-T1);

end;