Pascal'Split'功能

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可以帮我解决这个问题吗?对不起,如果这是一个非常容易的问题,我是编程新手

LU *_* RD 8

随着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)

可以使用多个字符作为分隔符.


Dav*_*nan 5

Delphi RTL已经具备您所需的精确功能,SplitStringSystem.StrUtils单元:

function SplitString(const S, Delimiters: string): TStringDynArray;
Run Code Online (Sandbox Code Playgroud)

记录为:

将字符串拆分为由指定的分隔符分隔的不同部分.

SplitString将字符串拆分为由指定的分隔符分隔的不同部分.S是要拆分的字符串.分隔符是一个字符串,包含定义为分隔符的字符.

SplitString返回System.Types.TStringDynArray类型的字符串数组,其中包含原始字符串的拆分部分.

  • @jpfollenius,如果标签或问题中没有提到任何其他内容,我总是假设在这里发布问题时最新的Delphi版本.如果有人想要具体的答案,他应该更准确地问他的问题.此外,即使不是OP,这个答案对其他人也有帮助. (2认同)
  • @UweRaabe肯定是!我没有批评答案(确实是upvoted),但只是提出了一个小编辑. (2认同)