StringBuffer类(stringbuffer类的默认容量)

  本篇文章为你整理了StringBuffer类(stringbuffer类的默认容量)的详细内容,包含有stringbuffer类的常用方法 stringbuffer类的默认容量 StringBuffer类,希望能帮助你了解 StringBuffer类。

  String 保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址,效率较低。private final char value[];

  StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上可以更新内容,不用更新地址,效率较高。char[] value; //这个存放在堆里

  
public static void main(String[] args) {

   //1. StringBuffer 的直接父类 是 AbstractStringBuilder

   //2. StringBuffer 实现了 Serializable,即StringBuffer的对象可串行化

   //3. 在父类 AbstractStringBuilder 中有属性 char value[] ,不是final

   // 该 value数组 存放我们的字符串内容,是存放在堆中的而非常量池,value[]不是常量了

   //4. StringBuffer 是一个final类,不能被继承

   //5. 因为StringBuffer 字符内容是存在 char[] value ,所以在变化时(增加/删除)

   // 不用每次都更换地址(即不是每次都创建新对象),所以效率高于 String(每次变化都会指向新的对象)

   StringBuffer stringBuffer = new StringBuffer();

  

 

 

  二、 StringBuffer转换

  
StringBuffer(CharSequence seq)

  构造一个包含与指定的相同字符的字符串缓冲区 CharSequence 。

  
//1. 创建一个大小为 16的char[],用于存放字符内容

   StringBuffer stringBuffer = new StringBuffer();

   //2. 通过构造器指定 char[] 大小

   StringBuffer stringBuffer1 = new StringBuffer(100);

   //3. 通过 给一个String 创建 StringBuffer,char[] value的大小就是 str.length + 16

   StringBuffer hello = new StringBuffer("hello");

   //4. 创建StringBuffer,包含与指定的CharSequence相同的字符。

   // StringBuffer(CharSequence seq)

  

 

 

  
//注意:返回的才是StringBuffer对象,对str本身没有影响

   StringBuffer stringBuffer = new StringBuffer("str");

   //方式2 使用的是 append方法

   StringBuffer stringBuffer1 = new StringBuffer();

   stringBuffer1.append(str);

   //看 StringBuffer —— String

   StringBuffer stringBuffer2 = new StringBuffer("你好!");

   //方式1:使用StringBuffer 提供的 toString方法

   String s = stringBuffer2.toString();

   //方式2:使用构造器

   String s2 = new String(stringBuffer2);

  

 

 

  
删 delete(start,end)

  改 replace(start,end,string),将start~end之间的内容替换掉,不含end。

  查 indexOf(),查找子串在字符串第一次出现的索引,如果找不到返回 -1.

  插 insert()

  获取长度 length()

  

public class StringBufferMethod {

 

   public static void main(String[] args) {

   StringBuffer s = new StringBuffer("hello");

   s.append(,);// "hello,"

   s.append("张三丰");// "hello,张三丰"

   s.append("赵敏").append(100).append(true).append(10.5);// "hello,张三丰100true10.5"

   System.out.println(s);

   删除索引 = start end 处的字符

   解读:删除 11 ~ 14 的字符 [11,14)

   s.delete(11,14);

   System.out.println(s);//hello,张三丰赵敏true10.5

   //使用 周芷诺 替换 索引 9 - 11 的字符 [9,11)

   s.replace(9,11,"周芷若");

   System.out.println(s);//hello,张三丰周芷若true10.5

   //查找指定的子串在字符串中第一次出现的索引,如果找不到返回-1

   int indexOf = s.indexOf("张三丰");

   System.out.println(indexOf);//6

   //在索引为9的位置插入 "赵敏",原来索引为9的内容自动后移

   s.insert(9,"赵敏");

   System.out.println(s);//hello,张三丰赵敏周芷若true10.5

   //长度

   System.out.println(s.length());

   System.out.println(s);

  

 

  以上就是StringBuffer类(stringbuffer类的默认容量)的详细内容,想要了解更多 StringBuffer类的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: