我在Delphi中搜索类似Perl的拆分函数

use*_*542 1 delphi split

我知道有很多方法可以拆分String,这样你就可以得到一个StringList.但我的问题是我想分割字符串的每个字符.

这意味着以下字符串:

'That is my Example String'
Run Code Online (Sandbox Code Playgroud)

应该转换为数组/ Stringlist或者以下内容:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
T h a t   i s   m y    E  x  a  m  p  l  e     S  t  r  i  n  g
Run Code Online (Sandbox Code Playgroud)

在Perl或Java中,split-function的分隔符字段只是为空,例如:

Perl: @string=split("",$string);
Java: String[] myStringArray=myString.split("");
Run Code Online (Sandbox Code Playgroud)

德尔福管理这个的最佳方法是什么?

MBo*_*MBo 9

通常在Delphi中不需要这样的函数,因为Delphi字符串表现为char数组,每个元素都可以通过索引访问,而char是与字符串兼容的赋值.因此,您几乎可以在所有情况下使用s [i]而不是分裂[i].

如果您确实需要特殊功能来填充列表,它可能看起来像

procedure SplitStringEx(const s: string; Splitted: TStrings);
var
  i: Integer;
begin
  Splitted.Clear;
  for i := 1 to Length(s) do
     {possible variant for fresh Delph versions 
     to take zero-based strings into account:}
  //for i := Low(s) to High(s) do  
    Splitted.Add(s[i])
end;

usage
  SplitStringEx('abc', Memo1.Lines);
Run Code Online (Sandbox Code Playgroud)