JAVA5种字符串拼接

简介: JAVA5种字符串拼接

1.+号拼接

2.concat 拼接

3.join拼接

4.StringBuffer拼接

5.StringBuilder拼接

public class test {
    public static void main(String[] args) {
        String add = add();
        String concat = concat();
        String join = join();
        String buffer = buffer();
        String builder = builder();
    }
    public static String add() {
        String string = "";
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            string += "a";
        }
        long endTime = System.currentTimeMillis();
        System.out.println("+号拼接耗时:" + (endTime - startTime));
        return string;
    }
    public static String concat() {
        String string = "";
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            string = string.concat("a");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("concat拼接耗时:" + (endTime - startTime));
        return string;
    }
    public static String join() {
        String string = "";
        long startTime = System.currentTimeMillis();
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < 1000000; i++) {
            list.add("a");
        }
        string = String.join(string, list);
        long endTime = System.currentTimeMillis();
        System.out.println("join拼接耗时:" + (endTime - startTime));
        return string;
    }
    public static String buffer() {
        StringBuffer sb = new StringBuffer();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            sb.append("a");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("StringBuffer拼接耗时:" + (endTime - startTime));
        return sb.toString();
    }
    public static String builder() {
        StringBuilder sb = new StringBuilder();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            sb.append("a");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("StringBuilder拼接耗时:" + (endTime - startTime));
        return sb.toString();
    }
}

执行效率

+号拼接耗时:6501

concat拼接耗时:1739

join拼接耗时:13

StringBuffer拼接耗时:2     (线程安全,多线程推荐)

StringBuilder拼接耗时:1    (线程不安全)

目录
相关文章
|
5天前
|
Java
Java 替换字符串 replace replaceAll
【7月更文挑战第10天】Java 替换字符串 replace replaceAll
Java 替换字符串 replace  replaceAll
|
12天前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解
|
19天前
|
Java 程序员
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
33 3
|
20天前
|
Java
java字符串分割split你用对了吗
java字符串分割split你用对了吗
15 1
|
21天前
|
Java API Apache
探讨Java中检测字符串是否包含数字和字母的技术
探讨Java中检测字符串是否包含数字和字母的技术
13 2
|
3天前
|
安全 Java
Java8 拼接字符串 StringJoiner
Java8 拼接字符串 StringJoiner
|
5天前
|
存储 安全 Java
Java面试题:请解释Java中的字符串和字符串缓冲区?
Java面试题:请解释Java中的字符串和字符串缓冲区?
6 0
|
6天前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
10 0
|
7天前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
14 0
|
10天前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解