通过 .format 或 .replace 快速将数字插入字符串?

Insert number into String fast, by .format or .replace?

我只想在一个大循环中将字符串中的占位符设置为 运行 数字。为方便起见,占位符是 %d。使用 String 的 .format 或 .replace 方法哪个更快?

因为我不知道响应但我很好奇,所以我做了一个非常简单的测试并添加了指标,这些就是结果:

代码:

@Test
public void test(){
    String original = "This is the phrase %d";
    long init = System.currentTimeMillis();
    for(int i = 0; i < 100000; i++){
        System.out.println(String.format(original, i));
    }
    long end = System.currentTimeMillis();

    long init1 = System.currentTimeMillis();
    for(int i = 0; i < 100000; i++){
        System.out.println(original.replace("%d", String.valueOf(i)));
    }
    long end2 = System.currentTimeMillis();
    System.out.println("Method 1: " + (end-init));
    System.out.println("Method 2: " + (end2-init1));
}

结果

Method 1: 1950 Method 2: 1361

因此我们可以假设 .replace 比 String 的格式化方法更快