procedure Tfrm_Main.btnSplitStrClick(Sender: TObject);
var
Str :string;
Arr :TStringList;//TArray<string>;
k:Integer;
procedure SplitString(s:string;Separator:string;var rs:TStringList);
var
AStr: string;
idx: Integer;
ASubStr: string;
begin
AStr := Trim(s);
while Pos(Separator, AStr) > 0 do
begin
idx := Pos(Separator, AStr);
ASubStr := Copy(AStr, 1, idx - 1);
rs.Add(ASubStr); //截取 分隔字符串的前一部分
AStr := Copy(AStr, idx +Length(Separator), Length(AStr)); //idx + 1
end;
if AStr+'a' <> 'a' then rs.Add(AStr); //如果存在剩余的字符串,则将其存入字符串列表中
end;
begin
str :='陈先生234>陈先生4545454545abckkkkjkjkjk'+#13#10+'陈先生mmmmmm陈先生我们的中国';
Arr :=TStringList.Create;
SplitString(str,'陈先生',Arr);
for k := 0 to Arr.Count - 1 do
begin
ShowMessage(Arr[k]);
end;
end;
注:Xe版本以上用自带的str.Spite(['陈先生']) 返回TArray,使用for i:=low(arr) to high(arr) do 即可