use*_*521 3 arrays delphi string pascal split
我正在使用pascal编写一个小程序,但我遇到了一个小问题.在其他语言中,有一个名为"split"或"explode"的函数来获取由定义的字符打断的长字符串,并将这个长字符串拆分为几个较小的字符串并将它们分配给一个数组.这就是我的意思,我想这样做:
longstring:='Word1.Word2.Word3');
Split('.', longstring, OutPutVariable) ;
{ OutPutVariable[1] would be Word1}
{ OutPutVariable[2] would be Word2}
{ OutPutVariable[3] would be Word3}
Run Code Online (Sandbox Code Playgroud)
这不是真正的代码,因为pascal中不存在'split'.我认为它存在于Delphi中.anypne可以帮我解决这个问题吗?对不起,如果这是一个非常容易的问题,我是编程新手
随着TStringList操作如下:
procedure SplitText(aDelimiter: Char; const s: String; aList: TStringList);
begin
aList.Delimiter := aDelimiter;
aList.StrictDelimiter := True; // Spaces excluded from being a delimiter
aList.DelimitedText := s;
end;
Run Code Online (Sandbox Code Playgroud)
注意:该StrictDelimiter属性已在D2006中添加.
其他方式:
procedure SplitText(const aDelimiter,s: String; aList: TStringList);
begin
aList.LineBreak := aDelimiter;
aList.Text := s;
end;
Run Code Online (Sandbox Code Playgroud)
可以使用多个字符作为分隔符.
Delphi RTL已经具备您所需的精确功能,SplitString从System.StrUtils单元:
function SplitString(const S, Delimiters: string): TStringDynArray;
Run Code Online (Sandbox Code Playgroud)
记录为:
将字符串拆分为由指定的分隔符分隔的不同部分.
SplitString将字符串拆分为由指定的分隔符分隔的不同部分.S是要拆分的字符串.分隔符是一个字符串,包含定义为分隔符的字符.
SplitString返回System.Types.TStringDynArray类型的字符串数组,其中包含原始字符串的拆分部分.