`
61party
  • 浏览: 1046782 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一个用JavaScript写的的StringBuffer类

 
阅读更多

JavaScript在执行大量的字符处理时会非常慢。参考网上的一些文章,写了个简单的StringBuffer类:



一、类图:

StringBuffer()
StringBuffer(string)
.append(string)
.toString(separator)

二、源码只展示最主要的方法,其它可以自己添加,方法名可参照Java中的命名方法):
function StringBuffer(string) {
this._buffer = [];
this.append(string);
}
StringBuffer.prototype.append = function (string) {
if (string) {
//this._buffer.push(string);//用下面的兼容性好些,速度也快一点(IE6下测试的)
this._buffer[this._buffer.length] = string;
}
return this;
};
StringBuffer.prototype.toString = function (separator) {
return this._buffer.join(separator || "");
};

三、用法:
var sb = new StringBuffer("a");
sb.append("b").append("c").append("d"); //这个用法很象在java中的用法
for (var i = 0; i < 10000; i++){
sb.append(i);
}
document.write(sb.toString());

四、比较一下用普通方法生成的速度
var st, et;

st = new Date();
var sb = new StringBuffer("a");
sb.append("b").append("c").append("d");
for (var i = 0; i < 10000; i++){
sb.append(i);
}
document.write(sb.toString());
et = new Date();
document.write("<br />");
document.write("用StringBuffer类处理10000个字符相加消耗了" + (et - st) + "毫秒");
document.write("<br /><hr><br />");

st = new Date();
var s = ""
s += "a";
s += "b";
s += "c";
s += "d";
for (var i = 0; i < 10000; i++){
s += i;
}
document.write(s);
et = new Date();
document.write("<br />");
document.write("用普通方法处理10000个字符相加消耗了" + (et - st) + "毫秒");



点击下载 (请用浏览器右键/目录另存为,下载后将.jpg后缀名去掉)

为什么下载地址是个图片?

分享到:
评论

相关推荐

    JavaScript 利用StringBuffer类提升+=拼接字符串效率

    JavaScript 利用StringBuffer类提升+=拼接字符串效率,需要的朋友可以参考下。

    java高级特性StringBuffer类.doc

    java高级特性StringBuffer类.doc

    JAVA的StringBuffer类.docx

    JAVA的StringBuffer类.docx

    javascript下高性能字符串连接StringBuffer类

    使用StringBuffer类比使用加号节省50%左右的时间,大家对于大数据的连接最好使用这个方法。

    JavaScript实现Java中StringBuffer的方法

    主要介绍了JavaScript实现Java中StringBuffer的方法,实例分析了StringBuffer类的实现与使用技巧,需要的朋友可以参考下

    JavaScript中String和StringBuffer的速度之争

    显示情况时Javascript中并没有StringBuffer类,一种主流的Javascript StringBuffer类的实现是通过prototype构造一个StringBuffer类。 StringBuffer.js 代码如下: function StringBuffer(){ this.content = new Array...

    Javascript写的asp功能包

    3、ajax功能,客户端与服务器端均由javascript编写,将客户端参数和函数名经XML编码后传至服务端,服务器执行后将结果传回客户端,从而实现了ajax。 4、常用组件,如Hashtable和StringBuffer,能够提高asp应用的性能...

    javascript之大字符串的连接的StringBuffer 类

    javascript之大字符串的连接的StringBuffer 类

    javascript制作sql转换为stringBuffer的小工具

    主要介绍了javascript制作sql转换为stringBuffer的小工具,使用方法很简单,吧写好的sql语句只要格式化好之后放进去就可以了,推荐给大家,有需要的小伙伴可以参考下。

    jsvm2框架源码

    JSVM (JavaScript Virtual Machine的缩写),一个JavaScript基础框架,sourceforge开源项目,由万常华(wch3116)于2003年底发起, 采用的是 BSD License 授权协议。 JSVM并不是一个JavaScript Library,而是一个更...

    java面试宝典

    139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN时如何接受初始化...

    千方百计笔试题大全

    139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN时如何接受初始化...

    JSP中使用JDBC连接SQL_Server_2005、2000详解

    JSP中使用JDBC连接SQL_Server_2005、2000详解

    最新Java面试宝典pdf版

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

Global site tag (gtag.js) - Google Analytics