stringBuilder类的一些用法

对字符串进行大量操作时比如拼接、截取,会在内存中新建很多字符串对象。为了减少内存开支,可以使用StringBuilder类型。

创建StringBuiler实例:

用构造函数直接创建:

StringBuilder   MyStringBuilder   =   new   StringBuilder("Hello   World!"); 

或创建空的实例再赋值;

StringBuilder MyStringBuilder   = new StringBuilder();
Str.Append("Hello   World!");

1、Append(string  Str )\Append(char c):连接字符串、字符:

StringBuilder Str= new StringBuilder("Hello   World!");
 Str.Append("c");

得到:Hello World!c

2、toString():得到字符串:

  StringBuilder Str= new StringBuilder("Hello   World!");
Str.toString();

得到 Hello World!

3、AppendFormat() 可以使用此方法来自定义变量的格式并将这些值追加到   StringBuilder   的后面

  StringBuilder Str= new StringBuilder("Hello   World!"); 

   Str.AppendFormat("{0:C}", 10);

得到: Hello World!¥10.00

补充:{0:c}  "0"表示占位符。c 是格式化控制信息,c表示货币格式。 

c | C:代表货币格式
d | D:代表十进制格式
e | E:代表科学计数(指数)格式
f | F: 浮点格式
x | X: 十六进制格式。

4、insert(int offset, String str)/insert(int offset, Char c):在指定位置之前插入字符(串)

 StringBuilder Str= new StringBuilder("Hello   World!");

 Str.Insert(6,"cute ");

得到:Hello cute World!

 5、Remove(int offset,int length) 移除指定位置开始的指定长度的字符(串):

 StringBuilder Str= new StringBuilder("Hello   World!");

  Str.Insert(6,"cute ");

  Str.Remove(6, 4);

得到 Hello World!

6、Replace (string  str,string str2)将str替换成str2:

StringBuilder Str= new StringBuilder("Hello   World!");

 Str.Replace("World","China");

得到:Hello China!

 

 

 在以下情况应该考虑使用string

  • 对字符串进行的更改数量很小时。StringBuilder提高的性能可忽略

  • 当你执行固定数量的串联操作时,尤其是字符串文本。 在这种情况下,编译器可能会将串联操作合并为单个操作。

在生成字符串时,必须执行大量的搜索操作。 StringBuilder类缺少搜索方法,如 IndexOf 或 StartsWith 。 StringBuilder对于这些操作,必须将对象转换为 String ,这可能会使使用StringBuilder不会带来性能优势

 在以下情况应该考虑使用StringBuilder

  • 如果希望应用在设计时对字符串进行未知数量的更改 (例如,当你使用循环来连接包含用户输入) 的随机数量的字符串时。

  • 希望应用对字符串进行大量更改时。

posted @ 2019-01-04 14:53  jaiden_chan  阅读(5617)  评论(0编辑  收藏  举报