Lazarus - 基于分隔符的解析函数

Lin*_*ese 0 lazarus

我正在Lazarus中构建一个小应用程序,需要一个基于下划线的解析功能.例如:

array := Split(string, delimiter);
Run Code Online (Sandbox Code Playgroud)

因此string = "this_is_the_first_post",分隔符是下划线,导致数组返回为:

array[0] = this
array[1] = is
array[2] = the
array[3] = first
array[4] = post
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题?我尝试了一些代码示例,它总是会抛出错误.

谢谢.

小智 9

您可以使用以下代码:

var
  List1: TStringList;    
begin
  List1 := TStringList.Create;    
  try
    List1.Delimiter := '_';
    List1.DelimitedText := 'this_is_the_first_post';

    ShowMessage(List1[0]);
    ShowMessage(List1[1]);
    ShowMessage(List1[2]);
    ShowMessage(List1[3]);
    ShowMessage(List1[4]);
  finally
    List1.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

在此示例中,输出将显示为一组消息,但您可以获得一般的想法.