一个很好的String组合连接的方法(StringBuffer)

//String类操作 (相当于C#中的StringBuilder类)
function StringBuffer(){
    this.__strings = new Array;
}
StringBuffer.prototype.append = function(str){
    this.__strings.push(str);
}
StringBuffer.prototype.toString = function(){
    return this.__strings.join("");
}

 


测试代码如下:
 function Test(){
        var buffer = new StringBuffer();
        buffer.append("hello");
        buffer.append(" world!");
        alert(buffer.toString());
        var d1 = new Date();
        var str = "";
        for(var i = 0; i < 10000; i++){
            str += "text";
        }
        var d2 = new Date();
        document.write("Concatenation with plus:" + (d2.getTime() - d1.getTime()) + " milliseconds\n\r");
       
        var oBuffer = new StringBuffer();
        d1 = new Date();
        for(var i = 0; i< 10000; i++){
            oBuffer.append("text");
        }
        var sResult = oBuffer.toString();
        d2 = new Date();
        document.write("Concatenation with plus:" + (d2.getTime() - d1.getTime()) + " milliseconds");
    }


结论:
这段代码对字符串链接进行两个测试,第一个使用加号,第二个使用StringBuffer类。每个操作都连接10000个字符串。该测试的结果说明使用StringBuffer类比使用加号节省了50%~66%的时间;
posted @ 2007-10-20 10:20  陳龑  阅读(748)  评论(0编辑  收藏  举报