DELPHI的split函数的各种实现方法

一、单字符

function split(s,s1:string):TStringList;
begin
Result:=TStringList.Create;
while Pos(s1,s)>0 do
begin
     Result.Add(Copy(s,1,Pos(s1,s)-1));
     Delete(s,1,Pos(s1,s));
end;
Result.Add(s);
end;

 

二、直接使用TStringList

procedure TForm1.Button3Click(Sender: TObject);
var
Str:String;
ResultList:TStringList;
I:Integer;
begin
str:= '南京~信息~工程~大学';

ResultList := TStringList.Create;
try
    ResultList.Delimiter := '~';
    ResultList.DelimitedText := str;

    for I:= 0 to ResultList.Count-1 do
    begin
      Memo1.Lines.Add(ResultList.Strings[I]);
    end;
finally
    FreeAndNil(ResultList);
end;
end;

 

三、支持特殊字符版(ch可以为字符串,如'aa')

function SplitString(const Source,ch:String):TStringList;
var
Temp:String;
I:Integer;
chLength:Integer;
begin
Result:=TStringList.Create;
//如果是空自符串则返回空列表
if Source='' then Exit;
Temp:=Source;
I:=Pos(ch,Source);
chLength := Length(ch);
while I<>0 do
begin
     Result.Add(Copy(Temp,0,I-1));
     Delete(Temp,1,I-1 + chLength);
     I:=pos(ch,Temp);
end;
Result.add(Temp);
end;

你可能感兴趣的:(Delphi)