package com.common.api;
/*
* 基本介紹
* 1、StringBuilder 是JDK1.5之後出現的,可替換StringBuilder的API
* 2、不通點:
* 1)StringBuilder是線程同步的
* 2)StringBulder是線程不同步的
* 3、使用原則:
* 1)單線程使用StringBuilder,多線程使用StringBuilder
* 2)單線程使用StringBuilder,不過需要自己去加鎖,保持同步
* 4、以後開發建議使用StringBuilder,StringBuilder擁有更高的效率
*
*Java升級三個要素
* 1)提高效率
* 2)簡化書寫
* 3)提高安全性
*
* 功能:CURD(Create Update Read Delete)
* 1)存儲
* StringBuilder append();將指定的數據作爲參數添加到已有數據的結尾處
* StringBuilder insert(index,數據);;可以將數據插入到指定index位置
* 2)刪除
* StringBuilder delete(int start, int end) 刪除緩衝區中的數據,包含start,不包含end
* StringBuilder deleteCharAt(int index) 刪除指定位置的字符
* 3)獲取
* char charAt(int index)
* int indexOf(String str)
* int lastIndexOf(String str)
* int length()
* String substring(int start, int end)
* 4)修改
* StringBuilder replace(int start, int end, String str)
* void setCharAt(int index, char ch)
* 5)反轉
* StringBuilder reverse()
* 6) 緩存區指定數據存儲到指定字符數組中
* void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
*/
public class StringBuilderDemo {
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void method_update()
{
StringBuilder sb=new StringBuilder("abcde");
sb.replace(1,4,"java");
sop(sb.toString());
sb.setCharAt(0, 'A');
sop(sb.toString());
}
public static void method_add()
{
StringBuilder sb=new StringBuilder();
sb.append(23).append(true).append(45);
sop(sb.toString());
sb.insert(2, "kk");
sop(sb.toString());
}
public static void method_del()
{
StringBuilder sb=new StringBuilder("abcde");
sop(sb.toString());
sb.delete(1, 3);
sop(sb.toString());
sb.deleteCharAt(2);
sop(sb.toString());
//清空緩存區
sb.delete(0, sb.length());
sop("清空緩衝區後結果爲:"+sb.toString());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
method_add();
method_del();
method_update();
StringBuilder sb=new StringBuilder("abcdefg");
char[] chs=new char[4];
sb.getChars(1, 4, chs, 1);
for(int i=0;i<chs.length;i++)
{
System.out.printf("chs[%d]=%s ",i,chs[i]);
}
}
}
執行結果如下:
23true45
23kktrue45
abcde
ade
ad
清空緩衝區後結果爲:
ajavae
Ajavae
chs[0]= chs[1]=b chs[2]=c chs[3]=d