字符串连接VS字符串格式

时间:2009-09-09 15:48:53

标签: delphi

什么是最好的方法,简单的字符串连接或string.format

例如,使用什么更好:

 s:=v1+' '+v2 

s:=format('%S %S',[v1,v2])

4 个答案:

答案 0 :(得分:11)

取决于您的“最佳”标准。如果你所做的只是连接两个字符串,我会选择+运算符。很明显你正在尝试做什么并且易于阅读,并且它更快一点,因为它不必使用变体。 (你看过format实际上做了什么吗?它有点吓人!)

format的主要优点是,它允许您创建单个字符串并将其存储在某个位置,例如文本文件或 resourcestring ,并稍后收集其他参数。这使它对更复杂的任务很有用。但是,如果您只需要将两根琴弦粘在一起,那就有点过分了。

答案 1 :(得分:10)

格式适用于国际化,可以本地化您的应用。连接没有。因此,我赞成任何可能必须以文化依赖方式制作的显示格式。

更新:原因适用于国际化的原因是并非所有语言都以相同的顺序表达所有内容。一个人为的例子是:

resourcestring
    sentence = ' is ';

var
    subject = 'Craig';
    adjective = 'helpful';
begin
   WriteLn(subject + sentence + adjective + '!');

这很有用,我可以用资源字符串进行自定义,但是用西班牙语我会写,“éQuéserviciales Craig!” resourcestring对我没有帮助。相反,我应该写:

resourcestring
    sentence = '%S is %S!'; // ES: '¡Qué %1:S es %0:S!'

答案 2 :(得分:5)

这是第三种选择:

s:=Concat(V1,V2);

答案 3 :(得分:1)

我用:

s := v1 + ' ' + v2;

最清楚,最容易理解。

这是最重要的事情。

您可能会发现一种效率稍高的构造,例如:在Delphi 2009中使用TStringBuilder。如果效率至关重要,那么在两个或三个最关键的行中做必要的事情。在其他任何地方,使用清晰易懂的代码和结构。