简洁的StringBuilder类

原创 2007年10月11日 16:51:00
在Javascript中我们经常会使用数组来进行字符串的拼接,以节省性能开销。下面是一个简洁的StringBuilder类及其使用方法:
/**//*
 *  String Builder Class
 *  Author: Robin Chen ( robchen@126.com )
 
*/

 
var StringBuilder = function()...{
    
this.cache = [];
    
if(arguments.length)this.append.apply(this,arguments);
}

StringBuilder.prototype 
= ...{
    prepend:
function()...{
        
this.cache.splice.apply(this.cache,[].concat.apply([0,0],arguments));
        
return this;
    }
,
    append:
function()...{
        
this.cache = this.cache.concat.apply(this.cache,arguments);
        
return this;
    }
,
    toString:
function()...{
        
return this.getString();
    }
,
    getString:
function()...{
        
return this.cache.join('');    
    }

}
 
使用方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String Builder</title>
<script type="text/javascript" src="stringbuilder.js"></script>
<script type="text/javascript">...
    
var sb = new StringBuilder('my',' friend,');
    sb.append(
'I');
    sb.append(
' am');
    sb.append(
' Robin',' Chen.');
    sb.prepend(
'hi,');
    sb.prepend(
'Hi,','hi,');
        alert(sb);
    alert(sb.getString());
</script>
</head>

<body>
</body>
</html>

StringBuilder 以及 StringBuffer默认大小与扩容

默认值初始化: 1.  首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类 无参构造方法 ...
  • Kinger0
  • Kinger0
  • 2015年07月19日 18:50
  • 8242

整理下java中stringBuilder和stringBuffer两个类的区别

StringBuilder和StringBuffer这两个类在动态拼接字符串时常用,肯定比String的效率和开销小,这是因为String的对象不会回收哦。 其实我一直用StringBuilde...
  • fcytxdy
  • fcytxdy
  • 2014年05月17日 15:52
  • 784

StringBuffer和StringBuilder存在的作用是什么

Java的字符串String对象,有一个特性就是不变性,它只能被创建,而不能改变其中的值。因此,一些大量使用字符串的程序可能会出现性能瓶颈,甚至内存溢出。针对这样的问题,Java为开发者提供了相应的解...
  • u012868077
  • u012868077
  • 2016年03月06日 19:12
  • 1040

String,StringBuffer与StringBuilder的区别|线程安全与线程不安全

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类...
  • u014086926
  • u014086926
  • 2016年07月29日 22:28
  • 7874

Java String为什么是不可变类,StringBuffer与StringBuilder区别

熟悉Java的都知道String类是不可变,但String类为什么设计成不可变类,如何做到不可变没有仔细想过。 String为什么设计成不可变类? 1.Java字符串池的设计方式。     Strin...
  • chenchaofuck1
  • chenchaofuck1
  • 2016年03月10日 15:15
  • 2040

java之StringBuilder和关于数组怎么扩容

String是不可变字符序列。 可变字符序列,StringBuffer和StringBuilder; 注意一下,其实StringBuffer和StringBuilder基本用法是一模一样的, ...
  • zw1996
  • zw1996
  • 2016年10月31日 23:06
  • 1363

C#中StringBuilder类的使用总结

String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新...
  • lvyiwuhen
  • lvyiwuhen
  • 2016年11月07日 14:24
  • 4719

StringBuilder在高性能场景下的正确用法

StringBuilder在高性能场景下的正确用法
  • paincupid
  • paincupid
  • 2016年04月29日 16:54
  • 985

关于String及StringBuilder的几点区别

直接看一个示例: public class StringTest{ void stringReplace(String str){ str=str.replace('l','i'); }...
  • zxz_tsgx
  • zxz_tsgx
  • 2014年05月05日 23:59
  • 7328

StringBuilder高性能用法总结

StringBuilder高性能用法总结
  • FX_SKY
  • FX_SKY
  • 2016年11月09日 12:01
  • 3646
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简洁的StringBuilder类
举报原因:
原因补充:

(最多只允许输入30个字)