ITPub博客

首页 > > > java五种拼接字符串的方法和效率对比

java五种拼接字符串的方法和效率对比

作者:fondtiger 时间:2019-09-06 15:34:01 0 删除 编辑

package test;

import org.apache.commons.lang.StringUtils;

public class CutString {

    //性能最差

    public String testPlus() {

        String s = "";

        for (int i = 0; i < 10000; i++) {

            s = s + String.valueOf(i);

        }

        return s;

    }

    //较好

    public String testConcat() {

        String s = "";

        for (int i = 0; i < 10000; i++) {

            s = s.concat(String.valueOf(i));

        }

        return s;

    }

     

    //性能与testStringBuffer相差无几,比其要好

    public String testJoin() {

        String[] list = new String[10000];

        for (int i = 0; i < 10000; i++) {

            list[i] = String.valueOf(i);

        }

        return StringUtils.join(list, "");

    }

    public String testStringBuffer() {

        StringBuffer sb = new StringBuffer();

        long l1 = System.currentTimeMillis();

        for (int i = 0; i < 10000; i++) {

            sb.append(String.valueOf(i));

        }

        long l2 = System.currentTimeMillis();

        System.out.println(l2-l1);

        return sb.toString();

    }

     

    //性能最高的方法

    public void testStringBuilder() {

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < 100000; i++) {

            sb.append(String.valueOf(i));

        }

        sb.toString();

    }

    public static void main(String[] args) {

        System.out.println(new CutString().testStringBuffer());

    }

}

运行结果如下:

11:00:22,359  INFO TestString:23 - + cost 1828 ms

11:00:22,921  INFO TestString:34 - concat cost 562 ms

11:00:22,937  INFO TestString:46 - StringUtils.join cost 16 ms

11:00:22,968  INFO TestString:58 - StringBuffer cost 31 ms

11:00:23,031  INFO TestString:70 - StringBuilder cost 63 ms

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2508/viewspace-3147872/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: thinkphp路由映射
请登录后发表评论 登录
全部评论

注册时间:2019-09-29

  • 博文量
    122
  • 访问量
    13449