stringBuilder的使用

来源:互联网 发布:手机艺术字软件 编辑:程序博客网 时间:2024/05/14 18:20

String在每次修改时,会创建一个新的对象。在大量操作时,会占用太多资源。而StringBuilder和StringBuffer不会,这两个只有在toString时才会创建对象。

但是StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。

在对字符串操作频繁的情况下,不建议用 “+” 来对字符串拼接,而是用StringBuilder和StringBuffer

StringBuilder适合单线程使用,StringBuffer适合多线程使用。

StringBuilder包含的函数列表:

// 构造函数。默认的字符数组大小是16。StringBuilder()    // 构造函数。指定StringBuilder的字符数组大小是capacity。  StringBuilder(int capacity)    // 构造函数。指定字符数组大小=seq长度+15,且将seq的值赋值到当前字符数组中。StringBuilder(CharSequence seq)    // 构造函数。指定字符数组大小=str长度+15,且将str的值赋值到当前字符数组中。StringBuilder(String str)       // 追加“各种对应对象的字符串”在当前的stringbuilder后面,相当于两个String1+String2的效果,但是性能比连个String拼接快得多StringBuilder     append(float f)    StringBuilder     append(double d)    StringBuilder     append(boolean b)    StringBuilder     append(int i)    StringBuilder     append(long l)    StringBuilder     append(char c)    StringBuilder     append(char[] chars)    StringBuilder     append(String str)    StringBuilder     append(Object obj)    StringBuilder     append(StringBuffer sb)    StringBuilder     append(CharSequence csq)   StringBuilder     appendCodePoint(int codePoint)   // 追加“str“,从offset开始,内容长度是len   StringBuilder     append(char[] str, int offset, int len)// 追加“csq“,从start(包括)到end(不包括)    StringBuilder     append(CharSequence csq, int start, int end)      // 删除“从start(包括)到end的内容” StringBuilder     delete(int start, int end)    // 删除“位置index的内容”  StringBuilder     deleteCharAt(int index) // 用“string”替换StringBuilder中从start(包括)到end(不包括)的内容StringBuilder     replace(int start, int end, String string)  // 在StringBuilder的位置offset处插入 “str中从offset开始的内容”,插入内容长度是lenStringBuilder     insert(int offset, char[] str, int strOffset, int strLen)// 在StringBuilder的位置offset处插入“s中从start到end”的内容StringBuilder     insert(int offset, CharSequence s, int start, int end)// 在StringBuilder的位置offset处插入对应对象的字符串StringBuilder     insert(int offset, boolean b)    StringBuilder     insert(int offset, int i)    StringBuilder     insert(int offset, long l)    StringBuilder     insert(int offset, float f)    StringBuilder     insert(int offset, double d)    StringBuilder     insert(int offset, char c)    StringBuilder     insert(int offset, char[] ch)    StringBuilder     insert(int offset, String str)    StringBuilder     insert(int offset, Object obj)    StringBuilder     insert(int offset, CharSequence s)    // 反转StringBuilderStringBuilder     reverse()  // 从start开始查找,返回“subString”在StringBuilder的位置int     indexOf(String subString, int start)   // 返回“string”在StringBuilder的位置    int     indexOf(String string) // 从后向前查找,返回“string”在StringBuilder的位置int     lastIndexOf(String string)    // 从start开始,从后向前查找,返回“string”在StringBuilder的位置  int     lastIndexOf(String subString, int start)  // 返回StringBuilder的长度int     length()// 返回StringBuilder中从start(包括)之后的内容String     substring(int start)    // 返回StringBuilder中从start(包括)到end(不包括)之间的内容String     substring(int start, int end)    // BUT!!!!!!StringBuilder中的substring是用的String中的方法// 所以实际上Stringbuilder中的subString在高并发系统里性能会差一些因为他会多分配对象,// 特别是当你反复使用subString方法的时候一定要记得使用String对象


0 0