zoukankan      html  css  js  c++  java
  • StringBuffer清空

    转载自:http://blog.sina.com.cn/s/blog_56fd58ab0100qfcz.html

    在开发程序的时候,经常使用StringBuffer来进行字符串的拼接。如果在循环中来反复的做字符串拼接时,会清空Stringbuffer中的内容,然后再拼接新的字符串信息。

    例如:

    StringBuffer sb = new StringBuffer("");

    for (UserInfo ui : userInfoList) {

        sb = new StringBuffer("");

        sb.append("姓名:");

        sb.append(ui.getName());

        sb.append("  ");

        sb.append("年龄:");

        sb.append(ui.getAge());

        System.out.println(sb.toString());

    }

    在循环中使用sb = new StringBuffer("");来清空sb中的信息。

    StringBuffer提供了以下连个方法:

    1、delete(int start, int end)
              移除此序列的子字符串中的字符

    2、setLength(int newLength)
              设置字符序列的长度。

    测试程序:

       private static void testStringBufferclear() {
            StringBuffer sbf = new  StringBuffer("wwwwww");
            StringBuffer sbi = new  StringBuffer("wwwwww");
            long s1 = System.currentTimeMillis();
            for (int i = 0; i < 500000; i++) {
             sbi.setLength(0);
            }
            long s11 = System.currentTimeMillis();
            System.out.println("StringBuffer-setLength:" + (s11 - s1));
      
            s1 = System.currentTimeMillis();
            for (int i = 0; i < 500000; i++) {
             sbf.delete(0, sbf.length());
            }
            s11 = System.currentTimeMillis();
            System.out.println("StringBuffer--delete:" + (s11 - s1));
            s1 = System.currentTimeMillis();
            for (int i = 0; i < 500000; i++) {
             sbf = new StringBuffer("");
            }
            s11 = System.currentTimeMillis();
            System.out.println("StringBuffer--new StringBuffer:" + (s11 - s1));
           }
    结果:

    StringBuffer-setLength:63
    StringBuffer--delete:109
    StringBuffer--new StringBuffer:78

    结论:

        要通过使用sbi.setLength(0);来清空StringBuffer对象中的内容效率最高。

  • 相关阅读:
    ARCGIS JAVASCRIPT API (3.2)部署
    WINFORM 只能运行一个实例问题
    iOS 版本号
    同步和异步的区别
    简单的手机号判断
    "_inflateEnd", referenced from "_inflateInit_"等。这时需要在工程中加入libz.dlib 文件
    iOS 实现打电话
    assign retain copy iOS
    iOS 长按事件 UILongPressGestureRecognizer
    UITableView 滑动删除
  • 原文地址:https://www.cnblogs.com/ixixi/p/9475967.html
Copyright © 2011-2022 走看看