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

时间:2014-08-24 01:30:45

标签: delphi split

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

这意味着以下字符串:

'That is my Example String'
应该将

转换为数组/字符串列表或以下内容:

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

在Perl或Java中,split-function的分隔符字段就像空一样 例如:

Perl: @string=split("",$string);
Java: String[] myStringArray=myString.split("");

Delphi管理这个的最佳方式是什么?

1 个答案:

答案 0 :(得分: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);