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

时间:2016-12-16 09:57:26

标签: java string replace formatting string-formatting

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

1 个答案:

答案 0 :(得分:1)

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

代码:

@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));
}

结果

  

方法1:1950方法2:1361

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

更快