如何在Delphi 12的新多行字符串中嵌入变量?
Delphi 12多行字符串实现变量替换的方法
Delphi 12引入的三重单引号(''')多行字符串本身不支持像JavaScript模板字符串那样直接嵌入变量,不过可以通过以下几种方式实现类似的变量替换效果:
1. 字符串拼接法
这是最直接的方式,通过+运算符将变量与多行字符串片段拼接:
var myName: string; myString: string; begin myName := 'Martin'; myString := ''''Hi ' + myName + ','#13#10 + 'Say hello to multi-line strings!'''; end;
三重引号内可以直接保留换行格式,只需要将变量插入到对应的位置即可。
2. Format函数格式化
使用Format函数配合占位符(%s对应字符串变量),更接近模板的写法:
var myName: string; myString: string; begin myName := 'Martin'; myString := Format('''Hi %s, Say hello to multi-line strings!''', [myName]); end;
这种方式适合变量较多的场景,占位符会被数组中对应的变量值替换。
3. TStringBuilder构建(高效场景)
如果需要处理大量变量或较长的字符串,使用TStringBuilder会更高效:
var myName: string; sb: TStringBuilder; myString: string; begin myName := 'Martin'; sb := TStringBuilder.Create; try sb.Append('Hi ').Append(myName).Append(',') .AppendLine .AppendLine('Say hello to ') .AppendLine('multi-line') .Append('strings!'); // 将构建好的内容包裹进三重引号 myString := '''' + sb.ToString + ''''; finally sb.Free; end; end;
内容的提问来源于stack exchange,提问作者Martin Kakhuis
相关产品推荐
相关产品推荐

