根据源代码进行分析,format的内部实现也是用的stringbuilder进行处理,在初始化方面,由上图可以看出,初始化stringbuilder容量长度为format首参长度加上辅参个数乘以8.
综上,当辅参平均长度不超过8时,string.format与stringbuilder的效率相同,当辅参平均长度超过8时,format需要对sb进行一次扩容,显然不如初始化既定容量的stringbuilder.

顺便一提关于stringbuilder的使用,根据源代码进行分析,sb的初始化默认容量仅为16,当对通过Append()方法传入字符串使得总长度超出当前长度时,sb也会执行扩容,因此在使用sb时,尽量预先估计好要传入参数的总长度,然后在初始化时进行长度的设定,尽量避免sb内部执行扩容方法,从而提高效率.

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐