javascript实现stringbuffer操作

来源:互联网 发布:java抛出异常 编辑:程序博客网 时间:2024/06/06 02:59
function StringBuffer(){if(this instanceof StringBuffer){this.arr = [];this.length = 0;this.add = this.append = function(v){if(v!==null&&v!==undefined){var vt = v.toString();this.length += vt.length;this.arr.push(vt);}return this;};this.clear = this.empty = function(){this.arr = [];this.length = 0;return this;};this.valueOf = this.toString = function(v){if(!!v){return this.arr.join(v);}else{return this.arr.join("");}};this.substring = function(){return this.valueOf().substring(arguments[0],arguments[1]);};this.removeLast = function(){if(this.length>0){var tmp = this.arr[this.arr.length-1].toString();if(tmp.length==1){this.arr.pop();}else{this.arr[this.arr.length-1] = tmp.substring(0, tmp.length-1);}this.length -= 1;}return this;};this.removeLastAppend = this.removeLastAdd = function(){if(this.length>0){var s = this.arr.pop();this.length -= s.length;}return this;};this.charAt = function(index){if(typeof index!=="number"){throw new Error("\u671f\u671b\u662f\u6570\u5b57\u7c7b\u578b\uff0c\u7ed3\u679c\u662f\u5176\u4ed6\u7c7b\u578b!");}return this.valueOf().charAt(index);}this.replace = function(start, end, str){if(start>=end) throw new Error("\u53c2\u6570\u6709\u8bef");   //参数有误var tmp = this.valueOf();tmp = tmp.substring(0, start)+str+tmp.substring(end);this.empty().append(tmp);return this;}}else{return new StringBuffer();}};

0 0
原创粉丝点击