在Java开发中,合并字符串通常使用两种方式:
- 使用String的+=操作符,这种情况适用于小规模的字符串连接。
- 使用StringBuffer的append方法,适用于大规模的场景。
参见如下示例:
import java.util.*;
import java.math.*;
public class TestStringBuffer {
private static int LOOP_NUM = 10000;
private static List stringList = new ArrayList();
private static void generateList(){
double randomNum;
for (int i = 0; i < TestStringBuffer.LOOP_NUM; i++){
randomNum = Math.random();
stringList.add(Double.valueOf(randomNum).toString());
}
}
public static void main(String[] args) {
//Generate the String List
long generateStartTime = System.currentTimeMillis();
TestStringBuffer.generateList();
long generateEndTime = System.currentTimeMillis();
System.out.println("### The generation costs " + (generateEndTime -
generateStartTime) + " ms");
//Use += to concat the String List
long splusStart = System.currentTimeMillis();
String concat = "";
for (int i = 0 ; i < stringList.size(); i++){
concat += stringList.get(i);
}
long splusEnd = System.currentTimeMillis();
System.out.println("### The direct concat costs " + (splusEnd -
splusStart) + " ms");
//Use StringBuffer to concat the String List
long sbStart = System.currentTimeMillis();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < stringList.size(); i++){
sb.append(stringList.get(i));
}
long sbEnd = System.currentTimeMillis();
System.out.println("### The StringBuffer concat costs " + (sbEnd -
sbStart) + " ms");
}
}
运行结果如下,可以看出性能相差近千倍。
### The generation costs 151 ms
### The direct concat costs 158427 ms
### The StringBuffer concat costs 40 ms
分享到:
相关推荐
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在 循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用”+”的话将得到最低的...
java字符串处理取出括号内的字符串 都是我自己试过可以用的j
java 字符串 详细实例代码 字符串检索 可改变字符串 字符串生成器 日期和时间字符串格式化
用于测试java字符串几种连接方式的效率,主要包括四类对比测试:1,StringBuffer连接,2,String的Format连接,3,String相加连接,4,StringBuffer的append串起来连接。测试结果如下: String Buffer: 580ms String...
java压缩字符串
java 字符串的加密 java 字符串的加密 java 字符串的加密
通用字符串连接 可自定义连接分隔符 支持List Set Map 数组 等集合,可自定义字符串提取规则
89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符串方法.zip89.java字符...
主要介绍了Java 字符串连接的性能问题分析的相关资料,需要的朋友可以参考下
有关java里的一些字符串的总结,适合java初学者学习。
96.java字符串反转案例.zip96.java字符串反转案例.zip96.java字符串反转案例.zip96.java字符串反转案例.zip96.java字符串反转案例.zip96.java字符串反转案例.zip96.java字符串反转案例.zip96.java字符串反转案例.zip...
29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29...
java字符串的各种编码转换. java字符串的各种编码转换
java 分解字符串 java 分解字符串 java 分解字符串
java中求字符串表达式的值看起来很伤脑筋,但如果你用BeanShell,一切都变得很简单。
JAVA 字符串 操作
JAVA连接字符串到配置文件
Java字符串长度不够前面或后面补0
JAVA字符串处理函数列表一览 JAVA字符串相关