javascript实现stringbuffer操作

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值