java 当中的StringBuilder StringBuffer String
众所周知,String是不能够修改的,如果要修改一个字符串,那么我们就要用到StringBuilder 或者是StringBuffer
资料显示-> StringBuilder在Java5 中被提出,他与StringBuffer的区别在于StringBuilder的方法不是线程安全的,不能够同步访问.StringBuilder在速度上是优于StringBuffer的,在多数的平常情况下,还是建议使用StringBuilder的,
菜鸟教程上的介绍
简书大佬的笔记
StringBuilder的一些api
StringBuilder sBuilder = new StringBuilder("abcdefghijk");
//在字符串的末尾追加字符串
//参数的类型可以是:Object;String;StringBuilder;StringBuffer;CharSequence;boolean;char;int;long;float;double
sBuilder.append(true);
System.out.println("追加后的字符串是 : " + sBuilder);
//返回指定位置字符的unicode值
int code1 = sBuilder.codePointAt(0);
System.out.println("code1 : " + code1);
//返回指定字符前一个字符的unicode值
int code2 = sBuilder.codePointBefore(1);
System.out.println("code2 : " + code2);
//返回指定索引之间的字符的数量,数量为endIndex-beginIndex
int code3 = sBuilder.codePointCount(1, 8);
System.out.println("code3 : " + code3);
//删掉指定位置间字符
sBuilder.delete(0, 3);
System.out.println("删除以后的字符串是 : " + sBuilder);
//删除指定位置上的字符
sBuilder.deleteCharAt(0);
System.out.println("删除第一个位置上的字符以后的新字符是 : " + sBuilder);
//替换掉指定位置间的字符,前两个参数不可以为负数,第一个参数必须小于等于第二个参数。
sBuilder.replace(sBuilder.length()-4, sBuilder.length()-1, "*");
System.out.println("替换以后的新字符是 : " + sBuilder);
//在指定的位置插入数据
sBuilder.insert(0, '@');
System.out.println("插入字符以后的新字符串是 : " + sBuilder);
//返回字符在字符串中第一次出现的位置索引,如果不存在返回-1
int index = sBuilder.indexOf("a");
System.out.println("a第一次出现的位置索引 " + index);
//返回字符在字符串中最后一次出现的位置索引,如果不存在则返回-1
int lastIndex = sBuilder.lastIndexOf("a");
System.out.println("a在字符串中最后一次出现的位置索引是 : " + lastIndex);
//字符串逆序
System.out.println("逆序前的字符串是 : " + sBuilder);
System.out.println("逆序后的字符串是 : " + sBuilder.reverse());
StringBuffer 的一些API 基本是一些增删查改和转置
StringBuffer sb = new StringBuffer("hello");
/** append(string s) 将制定s串追加到stingbuffer之后*/
System.out.println(sb.append(" world!"));//hello world!
/** reverse() 将制定字符串翻转*/
System.out.println(sb.reverse());//!dlrow olleh
/** delete(int start,int end) 删除制定部分的子串*/
System.out.println(sb.delete(2, 3));//!drow olleh
/** insert(int index,参数类型 参数) 将参数,插入之字符串的index位置
* 参数类型可以是基本数据类型,也可以是对象,集合,数组等
*/
System.out.println(sb.insert(2,"&"));//!d&row olleh
//字符
System.out.println(sb.insert(2,'A'));//!dA&row olleh
//double
System.out.println(sb.insert(2,3.141592657000));//!d3.141592657A&row olleh
//long
long l = 123456789123456789l;
System.out.println(sb.insert(2,l));//!d1234567891234567893.141592657A&row olleh
//数组
String[] str = new String[]{"qwe","asd","zxc"};
System.out.println(sb.insert(2,str));//!d[Ljava.lang.String;@5c8da9621234567891234567893.141592657A&row olleh
/** replace(int start,int end,string str) 将从start到end,换为str*/
System.out.println(sb.replace(0,15,"HHHHH"));