StringBuilder 类

命名空间:System.Text

程序集:mscorlib(在 mscorlib.dll 中)

     此类表示值为可变字符序列的类似字符串的对象。之所以说值是可变的,是因为在通过追加、移除、替换或插入字符而创建它后可以对它进行修改。。

     大多数修改此类的实例的方法都返回对同一实例的引用。由于返回的是对实例的引用,因此可以调用该引用的方法或属性。如果想要编写将连续操作依次连接起来的单个语句,这将很方便。。

    StringBuilder 的容量是实例在任何给定时间可存储的最大字符数,并且大于或等于实例值的字符串表示形式的长度。容量可通过 Capacity 属性或 EnsureCapacity 方法来增加或减少,但它不能小于 Length 属性的值。。

    

性能注意事项:

     Concat 和 AppendFormat 方法都将新数据串连到一个现有的 String 或 StringBuilder 对象。String 对象串联操作总是用现有字符串和新数据创建新的对象。StringBuilder对象维护一个缓冲区,以便容纳新数据的串联。如果有足够的空间,新数据将被追加到缓冲区的末尾;否则,将分配一个新的、更大的缓冲区,原始缓冲区中的数据被复制到新的缓冲区,然后将新数据追加到新的缓冲区。。

    给实现者的说明 此实现的默认容量是 16,默认的最大容量是 Int32.MaxValue。 当实例值增大时,StringBuilder 可按存储字符的需要分配更多的内存,同时对容量进行相应的调整。分配的内存量是特定于实现的,而且如果所需内存量大于最大容量,会引发 ArgumentOutOfRangeException。 例如,Append、AppendFormat、EnsureCapacity、Insert 和 Replace方法能增大实例的值。 通过 Chars 属性可以访问 StringBuilder 的值中的单个字符。索引位置从零开始。。

 

using namespace System;
using namespace System::Text;

int main()
{
    // Create a StringBuilder that expects to hold 50 characters.
    // Initialize the StringBuilder with "ABC".
    StringBuilder^ sb = gcnew StringBuilder("ABC", 50);

    // Append three characters (D, E, and F) to the end of the
    // StringBuilder.
    sb->Append(gcnew array<Char>{‘D‘, ‘E‘, ‘F‘});

    // Append a format string to the end of the StringBuilder.
    sb->AppendFormat("GHI{0}{1}", (Char)‘J‘, (Char)‘k‘);

    // Display the number of characters in the StringBuilder
    // and its string.
    Console::WriteLine("{0} chars: {1}", sb->Length, sb->ToString());

    // Insert a string at the beginning of the StringBuilder.
    sb->Insert(0, "Alphabet: ");

    // Replace all lowercase k‘s with uppercase K‘s.
    sb->Replace(‘k‘, ‘K‘);

    // Display the number of characters in the StringBuilder
    // and its string.
    Console::WriteLine("{0} chars: {1}", sb->Length, sb->ToString());
}

// This code produces the following output.
//
// 11 chars: ABCDEFGHIJk
// 21 chars: Alphabet: ABCDEFGHIJK

   

时间: 2024-10-12 13:37:08

StringBuilder 类的相关文章

JavaSE入门学习29:Java常用类之StringBuffer类和StringBuilder类

一StringBuilder类 (1)认识StringBuilder类 在Java中,除了可以使用String类来存储字符串,还可以使用StringBuilder类或 StringBuffer类存储字符串,在需 要频繁对字符串进行修改操作时使用StringBuilder的效率比String要高. String 类具有是不可变性.如: 运行结果: 从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld".当频繁操作字符串时,就会额 外产生很多临时变量.使用S

StringBuffer和StringBuilder类

java中除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么它们之间有什么区别? String 类具有是不可变性.内容不可以被修改,若修改了则是两个对象,因此要频繁修改字符串的话用String类会产生许多对象.使用 StringBuilder 或 StringBuffer 就可以避免这个问题.至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安

JAVA学习第三十一课(常用对象API)- StringBuffer类&amp;&amp;StringBuilder类

StringBuffer类 字符串的组成原理就是通过该类实现的 StringBuffer可以对字符串内容进行增删 StringBuffer是一个容器 很多方法和String相同 一.特点 StringBuffer字符串缓冲区,用于存放数据的容器 1.可变长度的 2.可以存储不同的数据类型 3.最终要转成字符串进行使用 4.对字符串进行修改 容器的特点: 1.添加  append(data) insert(index,data); 2.删除 StringBuffer delete(int star

【JAVA中String、StringBuffer、StringBuilder类的使用】

一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: 1 public class StringDemo 2 { 3 public static void main(String args[]) 4 { 5 StringDemo1(); 6 7 } 8 public static void StringDemo1() 9 { 10 String str1="abcd"; 11

一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对比

本文主要介绍String类.StringBuffer类.StringBuilder类的区别  : 一.概述 (一)String 字符串常量,但是它具有不可变性,就是一旦创建,对它进行的任何修改操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法完全相同. 区别在于StringBuffer每个方法中前面添加了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可变量,

【学习笔记】String进阶:StringBuffer类(线程安全)和StringBuilder类

一.除了使用String类存储字符串之外,还可以使用StringBuffer类存储字符串.而且它是比String类更高效的存储字符串的一种引用数据类型. 优点: 对字符串进行连接操作时,使用StringBuffer类可以大大提高程序的执行效率. 1.如何使用StringBuffer类 StringBuffer类位于java.util包中,是String类的增强类.声明StringBuffer对象并初始化的方法如下: StringBuffer sb = new StringBuffer("青春无悔

java ——String , StringBuffer, StringBuilder类

一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: “==”  比较两个对象是否引用同一实例 public class StringDemo { public static void main(String args[]) { StringDemo1(); } public static void StringDemo1() { String str1="abcd"; Str

C#数据结构和算法-字符串、String 类和StringBuilder类

*本文为摘抄笔记* Preface当程序需要对String对象进行许多改变时会用到StringBuilder类.因为字符串和String对象都是不可改变的,而StringBuilder对象则是易变的.String类不可变,就意味着每次对象进行改变时都需要创建一个新的对象副本.如果在创建长的字符串,或者是对相同对象进行许多改变,那么就应该用StringBuilder类来代替.StringBuilder对象是可变的,性能会更好. 字符串是字符的序列,可以包含字母.数字和其他符号.C#语言中,用双引号

.Net的String类与StringBuilder类操作

关于.NET提供了许多可以直接使用的类代码,常用的包括Convert类.String类和StringBuilder类.DateTimel类和TimeSpan类.Math类等等. 其中Convert类提供的方法都是静态方法,主要用于数据类型的转换: 例如: 字符串数据类型  -----> 整形 string str ="123"; int Getstr = Convert.Int32(str); 但要注意类型转换的取值范围. 当然DateTime类和TimeSpan类是针对时间这一

Java StringBuffer和StringBuilder类

当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象. StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同步访问). 由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBui