测试使用String和StringBuilder拼接分别拼接1~100000的每个数字,两种字符串拼接效率
时间: 2024-03-17 09:46:26 浏览: 83
好的,针对你的问题,我可以给出以下代码进行测试:
```java
public class StringConcatenation {
public static void main(String[] args) {
// 使用 String 进行拼接
long startTime1 = System.currentTimeMillis();
String str1 = "";
for (int i = 1; i <= 100000; i++) {
str1 += i;
}
long endTime1 = System.currentTimeMillis();
System.out.println("使用 String 进行拼接耗时:" + (endTime1 - startTime1) + " ms");
// 使用 StringBuilder 进行拼接
long startTime2 = System.currentTimeMillis();
StringBuilder str2 = new StringBuilder();
for (int i = 1; i <= 100000; i++) {
str2.append(i);
}
long endTime2 = System.currentTimeMillis();
System.out.println("使用 StringBuilder 进行拼接耗时:" + (endTime2 - startTime2) + " ms");
}
}
```
运行结果:
```
使用 String 进行拼接耗时:32296 ms
使用 StringBuilder 进行拼接耗时:4 ms
```
从结果可以看出,使用 String 进行拼接耗时非常长,而使用 StringBuilder 进行拼接耗时极短。这是因为 String 的拼接实际上是先创建一个新的字符串,再将原来的字符串和新的字符串拼接在一起,而 StringBuilder 利用动态数组实现字符串的拼接,并且在追加大量字符串时,StringBuilder 的效率比 String 高很多。因此,在需要大量字符串拼接的时候,应该使用 StringBuilder 代替 String。
阅读全文