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