stringBuffer & StringBuilder
String 的字符串缓冲区
StringBuffer : 线程安全的
StringBuilder : 线程不安全的 效率高
与String 区别:
String 不可变 StringBuffer 可变
无参构造 :
构造一个缓冲区 默认16个字节的容量(capacity)
有参构造三个:
  StringBuffer(int capacity) 指定容量 不常用
  StringBuffer(String str)  直接接收字符串
StringBuffer(charsequence chs) 接收一个charsequence接口的子类对象
charsequence 接口 实现的子类有 String, StringBuffer, StringBuilder
public static void main(String[] arr) { StringBuffer sb1 = new StringBuffer(); System.out.println(sb1.capacity()); // 16 是默认容量 System.out.println(sb1.length()); // 0 是字符串长度 StringBuffer sb2 = new StringBuffer(10); System.out.println(sb2.length()); // 0 是字符串长度 System.out.println(sb2.capacity()); // 10 是指定的容量 StringBuffer sb3 = new StringBuffer("heima"); System.out.println(sb3.length()); //5 System.out.println(sb3.capacity()); // 21 }
append() : 添加功能 基本数据类型都能接收, 返回的是缓冲区本身
insert() : 插入 insert(index,value)
deleteCharAt(int index) : 删除指定位置
delete(int start,int end) : 删除一段 (取头不取尾),返回的是缓冲区本省
delete(0,sb.length) : 清空缓冲区
replace(start,end,newstr) 替换功能 替换指定部分
####反转 sb.reverse()#####
    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        System.out.println("请输入字符串");
        String s1 = sc1.nextLine();
        StringBuffer sb1 = new StringBuffer(s1);
        sb1.reverse();
        System.out.println(sb1);   //   默认调用toString()方法
        }
subString(start,end) 切割 #### 返回的是一个String ####
String 和 StringBuffer 的转换: 
  String --> StringBuffer :	
    StringBuffer的构造、 append(str)
  StringBuffer --> String:
    toString()、 subString() 、 String的构造
当做参数传递时, String 看做常量 不改变值
        StringBuffer 是引用数据类型 会改变值
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号