好吧,每个人都在这里发布他们的传统答案,我也会这样做。
我看到已经发布了 2 个答案,但我不知道第四个答案(基于 PChar 的 ExtractStrings)是否会在此骗局关闭之前。
总体而言,这是基于分隔符将字符串拆分为字符串数组的副本,所有答案都可以在那里看到。
http://jcl.sf.net http://wiki.delphi-jedi.org/wiki/JCL_Help:IJclStringList
var OutPutVariable: iJclStringList;
OutPutVariable := JclStringList().Split('Word1.Word2.Word3','.');
现在
{ OutPutVariable[0] would be 'Word1'}
{ OutPutVariable[1] would be 'Word2'}
{ OutPutVariable[2] would be 'Word3'}
如果你坚持你的原始索引
{ OutPutVariable[1] would be Word1}
{ OutPutVariable[2] would be Word2}
{ OutPutVariable[3] would be Word3}
然后添加一个存根第 0 个字符串
OutPutVariable := JclStringList().Split('.Word1.Word2.Word3','.');
或者
OutPutVariable := JclStringList().Add('').Split('Word1.Word2.Word3','.', False);
它还提供了 Join 和许多其他功能。
PS:第 4 个变体是http://docwiki.embarcadero.com/Libraries/XE2/en/System.Classes.ExtractStrings