Java之StringBuilder

Java中的StringBuilder表示可变的字符序列。由于Java中的String类会创建不可变的字符序列,因此StringBuilder类提供了String类的替代方法。

 StringBuilder的功能与StringBuffer类非常相似,因为它们都通过可变的字符序列提供了String类的替代方法。但是,StringBuilder类在同步机制上与StringBuffer类不同。 StringBuilder类不提供同步保证,而StringBuffer类提供同步保证。因此,此类是为在单个线程使用StringBuffer时(通常是这种情况)用作StringBuffer的直接替代品。在可能的情况下,建议优先使用StringBuilder,因为在大多数实现中它会更快。 StringBuilder实例不能安全地用于多个线程。如果需要同步机制,则建议使用StringBuffer。


StringBuilder中的构造函数:

StringBuilder():  构造一个不包含任何字符且初始容量为16个字符的字符串生成器。

StringBuilder(int capacity): 构造一个字符串生成器,其中不包含任何字符,并且初始容量由Capacity参数指定。

StringBuilder(CharSequence seq): 构造一个字符串生成器,其中包含与指定CharSequence相同的字符。

StringBuilder(String str):构造一个字符串生成器,初始化为指定字符串的内容。


代码示例:

public class setep {    

    public static void main(String[] argv)            

        throws Exception{

        StringBuilder str = new StringBuilder(); 

       str.append("GFG"); 

       System.out.println("String = "+ str.toString());

       StringBuilder str1 = new StringBuilder("AAAABBBCCCC"); 

       System.out.println("String1 = "+ str1.toString()); 

       StringBuilder str2 = new StringBuilder(10);

        System.out.println("String2 capacity = "+ str2.capacity());

        StringBuilder str3 = new StringBuilder(str1); 

       System.out.println("String3 = "+ str3.toString());

    }

}

输出:

String = GFG

String1 = AAAABBBCCCC

String2 capacity = 10

String3 = AAAABBBCCCC


StringBuilder中的一些方法

StringBuilder append(X x):此方法将X类型参数的字符串表示形式附加到序列中。

int capacity():此方法返回当前容量。

char charAt(int index):此方法返回此序列在指定索引处的char值。

StringBuilder delete(int start, int end):此方法删除此序列的子字符串中的字符。

StringBuilder deleteCharAt(int index):此方法删除序列中指定位置的char。

void ensureCapacity(int minimumCapacity):此方法可确保容量至少等于指定的最小值。

void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)该方法将字符从该序列复制到目标字符数组dst。

int indexOf():此方法返回指定子字符串首次出现在该字符串中的索引。

StringBuilder insert():此方法将char参数的字符串表示形式插入此序列中。

int lastIndexOf():此方法返回指定子字符最后一次出现在此字符串内的索引。

int length():此方法返回长度(字符数)。

StringBuilder replace(int start, int end,String str):此方法用指定String中的字符替换此序列的子字符串中的字符。

StringBuilder reverse():此方法会使此字符序列被序列的相反字符替换。

void setCharAt(int index, char ch):在此方法中,指定索引处的字符设置为ch。

void setLength(int newLength):此方法设置字符序列的长度。

CharSequence subSequence(int start, int end):此方法返回一个新的字符序列,即该序列的子序列。

String substring():此方法返回一个新的String,包含此字符序列中当前包含字符的子序列。

String toString():此方法返回一个序列中数据的string形式。


代码示例:

public class setep {

    public static void main(String[] argv)

    throws Exception {

        StringBuilder str =new StringBuilder("AAAABBBCCCC");

        System.out.println("String = "+ str.toString());

        StringBuilder reverseStr = str.reverse();

        System.out.println("Reverse String = "+ reverseStr.toString());

        str.appendCodePoint(44);

        System.out.println("Modified StringBuilder = "+ str);

        int capacity = str.capacity();

        System.out.println("StringBuilder = " + str);

        System.out.println("Capacity of StringBuilder = "+ capacity);

    }

}

输出:

String = AAAABBBCCCC

Reverse String = CCCCBBBAAAA

Modified StringBuilder = CCCCBBBAAAA,

StringBuilder = CCCCBBBAAAA,

Capacity of StringBuilder = 27

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容