StringBuffer,and,StringBuilder
来源:互联网 发布:剑灵数据互通查询 编辑:程序博客网 时间:2024/05/18 01:34
/*StringBuffer是字符串缓冲区。是一个容器。特点:1.长度是可变化的。2.可以对内容通过制定方法进行修改3.容器对象一般都会具备对容器中的元素进行操作的功能。增删改查。4.缓冲区可以存储不同类型的数据。5.最终缓冲区存储完的数据都会通过toString方法变成字符串。起一个临时存储的作用C create U update R read D delete1,存储。StringBuffer append():将指定数据作为参数添加到已有数据结尾处。StringBuffer insert(index,数据):可以将数据插入到指定index位置。2,删除。StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。StringBuffer deleteCharAt(index):删除指定位置的字符。3,获取。char charAt(int index) int indexOf(String str) int lastIndexOf(String str) int length() String substring(int start, int end) 4,修改。StringBuffer replace(start,end,string);void setCharAt(int index, char ch) ;5,反转。StringBuffer reverse(); 6,将缓冲区中指定数据存储到指定字符数组中。void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 7,设置字符序列的长度。setLength()JDK1.5 版本之后出现了StringBuilder.StringBuffer是线程同步。StringBuilder是线程不同步。以后开发,建议使用StringBuilder升级三个因素:1,提高效率。2,简化书写。3,提高安全性。*/
原理:
字符串缓冲区中维护了一个“可变长度的数组”
解释:其实就是超出内部数组长度后,新建数组长度是原数组的1.5,1.75,1.x等的倍数,并将原数组的数据复制到新数组中,并将新的元素也添加到新数组中
什么时候用字符串缓冲区呢?
数据很多,个数无法确定,类型无法确定,只要最后都转换成字符串
就是用StringBuffer这个容器。
使用的局限性:
1.必须最终转换成字符串
2.无法对存储进来的元素进行单独操作,因为存储进来的元素都变成字符串
class Demo{}class StringBufferDemo {public static void main(String[] args) {//method_update();StringBuilder sb = new StringBuilder("abcdef");char[] chs = new char[6];sb.getChars(1,4,chs,1);//将for(int x=0; x<chs.length; x++){sop("chs["+x+"]="+chs[x]+";");}draw(3,6);draw(8,9);//StringBuilder sb1 = new StringBuilder();//sb1.append(new Demo()).append(new Demo());//sop("sb1="+sb1);}public static void method_update(){StringBuffer sb = new StringBuffer("abcde");//sb.replace(1,4,"java");sb.setCharAt(2,'k');sop(sb.toString());}public static void method_del(){StringBuffer sb = new StringBuffer("abcde");//sb.delete(1,3);//清空缓冲区。//sb.delete(0,sb.length());//sb.delete(2,3);sb.deleteCharAt(2);sop(sb.toString());}public static void method_add(){StringBuffer sb = new StringBuffer();//sb.append("abc").append(true).append(34);//StringBuffer sb1 = sb.append(34);//sop("sb==sb1:"+(sb==sb1));sb.insert(1,"qq");sop(sb.toString());//abctrue34//sop(sb1.toString());}public static void sop(String str){System.out.println(str);}public static void draw(int row,int col){StringBuilder sb = new StringBuilder();for(int x=0; x<row; x++){for(int y=0; y<col; y++){sb.append("*");}sb.append("\r\n");}sop(sb.toString());}}
0 0
- StringBuffer and StringBuilder
- String,StringBuilder and StringBuffer
- StringBuffer and StringBuilder 详解
- StringBuilder and StringBuffer
- String, StringBuffer, and StringBuilder
- String、StringBuffer and StringBuilder
- StringBuffer,and,StringBuilder
- String StringBuilder and StringBuffer
- StringBuffer and StringBuilder
- Overloading '+' VS. StringBuilder and StringBuffer
- Java - String, StringBuffer and StringBuilder
- String and StringBuffer and StringBuilder的区别
- [Java]Difference between String StringBuffer and StringBuilder
- The differences between String, StringBuffer and StringBuilder
- Difference Between String , StringBuilder And StringBuffer Classes
- StringBuilder --StringBuffer
- stringbuilder stringbuffer
- StringBuffer/StringBuilder
- redis网页版
- java常用utils类
- NumberUtils的学习
- Guava 中的 ListenableFuture
- NSMutableString的常见用法
- StringBuffer,and,StringBuilder
- Spring定时任务的几种实现
- 欢迎使用CSDN-markdown编辑器
- 1048. 数字加密(20)
- Js关于数组的遍历方法
- Python使用BeautifulSoup提取特定HTML标签内容
- iOS:苹果推送----开发者证书(推送证书)的生成
- Android运行时动态全屏以及旋转屏幕时不重新装载
- Spring Remoting by HTTP Invoker Example--reference