Delphi(2006):如何按新行拆分并同时中断
我在 Java 中有这个简单的操作,其中字符串由换行符和中断符分割。
String i= "Holidays
Great.
Bye";
String []linesArray = i.split("r?n");
我想在 Delphi 2006 中获得相同的结果。
使用以下步骤是否有效?
charArray[0] := 'r';
charArray[1] := 'n';
strArray := strA.Split(charArray);
回答
我这样解释您的请求:“在 CR 和 LF 处拆分字符串。” 这意味着 CR+LF 给出一个空字符串元素。例如,'alpha'#13'beta'#10'gamma'#13#10'delta'产生五行'alpha','beta','gamma','',和'delta'。
如果是这样,并且如果您使用的是非古代版本的 Delphi,这真的很简单:
var S := 'alpha'#13'beta'#10'gamma'#13#10'delta';
var Parts := S.Split([#13, #10]);
for var Part in Parts do
ShowMessage(Part);
var S := 'alpha'#13'beta'#10'gamma'#13#10'delta';
var Parts := S.Split([#13, #10]);
for var Part in Parts do
ShowMessage(Part);
对于旧的 Delphi 版本
上面的代码需要TStringHelper(至关重要)并且还使用了内联变量声明、for in循环和泛型。
对于旧的 Delphi 版本,您可以手动完成: