当前位置:首页 > JavaScript

js实现stringbuffer

2026-03-13 23:53:35JavaScript

实现 StringBuffer 的基本思路

在 JavaScript 中实现类似 Java StringBuffer 的功能,可以通过数组存储字符串片段,最后使用 join() 方法合并。这种方式比直接使用字符串拼接更高效,尤其在频繁修改字符串的场景下。

js实现stringbuffer

基本实现代码

class StringBuffer {
  constructor() {
    this.buffer = [];
  }

  append(str) {
    this.buffer.push(str);
    return this; // 支持链式调用
  }

  toString() {
    return this.buffer.join('');
  }

  clear() {
    this.buffer = [];
  }

  get length() {
    return this.buffer.reduce((total, str) => total + str.length, 0);
  }
}

使用示例

const sb = new StringBuffer();
sb.append('Hello').append(' ').append('World');
console.log(sb.toString()); // 输出 "Hello World"
console.log(sb.length); // 输出 11
sb.clear();

性能优化说明

数组的 push()join() 操作在 JavaScript 引擎中经过高度优化,比直接使用 += 拼接字符串性能更好。特别是在循环中拼接大量字符串时,这种方式的优势更明显。

js实现stringbuffer

扩展功能

可以根据需要扩展更多方法,例如插入、删除或替换特定位置的字符串:

insert(index, str) {
  this.buffer.splice(index, 0, str);
  return this;
}

delete(start, end) {
  const str = this.toString();
  this.clear();
  this.append(str.substring(0, start) + str.substring(end));
  return this;
}

替代方案

对于简单的用例,也可以直接使用数组:

const buffer = [];
buffer.push('part1');
buffer.push('part2');
const result = buffer.join('');

这种方法不需要创建专门的类,适合一次性使用的场景。

标签: jsstringbuffer
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…