通过 .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 的格式化方法更快
我只想在一个大循环中将字符串中的占位符设置为 运行 数字。为方便起见,占位符是 %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 的格式化方法更快