对字符串进行大量操作时比如拼接、截取,会在内存中新建很多字符串对象。为了减少内存开支,可以使用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

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

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

相关文章:

  • 2022-12-23
  • 2021-10-10
  • 2021-07-10
  • 2021-09-14
  • 2022-12-23
猜你喜欢
  • 2021-11-28
  • 2022-12-23
  • 2021-12-06
  • 2021-09-26
  • 2022-12-23
  • 2022-01-26
  • 2021-08-11
相关资源
相似解决方案