8

我想知道比较MessageFormatStringBuilder类。举个例子,我有一个字符串。对于性能方面,哪一个是快速的: java.text.MessageFormat.formatStringBuilder("Test ").append("Hello ")

String txt = java.text.MessageFormat.format("Test {0}"," Hello") 
String txt1=   new StringBuilder("Test ").append("Hello ")

我只想知道在最佳实践或性能方面使用哪一个

4

2 回答 2

14

自己试试:

long start = System.nanoTime();
String txt = MessageFormat.format("Test {0}"," Hello");
System.out.println("MessageFormat: " + (System.nanoTime() - start) + " ns");

start = System.nanoTime();
String txt1 = new StringBuilder("Test ").append("Hello").toString();
System.out.println("StringBuilder: " + (System.nanoTime() - start) + " ns");

输出:

消息格式:1125974 ns

字符串生成器:16705 ns

结论:

StringBuilder工作得更快,因为它只是向现有数组添加了一些字符。

于 2013-03-12T10:09:33.623 回答
3

StringBuilder仅将文本附加到动态缓冲区,而MessageFormat必须在附加数据之前解析给定格式,因此StringBuilderMessageFormat.

于 2013-03-12T10:02:36.030 回答