Java——StringBuffer/StringBuilder以及和string区别
Posted tractors
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——StringBuffer/StringBuilder以及和string区别相关的知识,希望对你有一定的参考价值。
一、string/string/stringbuffer区别:
1)string创建后不能改变,每次改变都是重新创建对象;
string/stringbuffer是string的缓冲区容器,可以修改;
2)速度:stringBuilder快于stringbuffer快于string
二、StringBuilder:StringBuffer的简单版本;1.5jdk之后才有;为了提高效率;
(1)StringBuffer:是线程同步;安全;效率低;建议多线程用;
(2)StringBuilder:是线程不同步;不安全;效率高;建议单线程用;
(3)功能都一样;
三、StringBuffer:
1.StringBuffer:是字符串缓冲区;一个容器;
2.toString();StringBuffer转换为字符串;
3.操作:
(1)存储:
StringBuffer append();//添加;将指定数据作为参数添加到已有数据的结尾处;
StringBuffer insert(index,数据);//插入;把数据插入到index位置;
(2)删除:
StringBuffer delete(strat,end);//删除;从start位,到end;包含头,不包含尾;
StringBuffer deleteCharAt(index);//删除指定位置的字符;
清空:
1)sb=new StringBuffer();
2)sb.delete(0,sb.length());
(3)获取:
char charAt(int index);//获取index位置的char;
int indexOf(String str);//获取第一个str的位置;没有返回-1;
String subString(int atrat,int end);
String toString();
(4)修改:
StringBuffer replace(int start,int end,String str);//替换;
void setCharAt(int index,char ch);//替换,替换字符后,不返回;
(5)反转:StringBuffer reverse();
(6)取出:void getChars(int srcBegin,int srcEnd,char[] dst,int detBegin):
//将缓冲区中的指定数据,存储到指定数组中;
//(缓冲区中开始位,结尾位,目标数组,数组开始位)
StringBuffer sb=new StringBuffer("0123456789"); char[] arr=new char[4]; sb.getChars(1,4,arr,1); System.out.println(arr[0]); //空 System.out.println(arr[1]); //1 System.out.println(arr[2]); //2 System.out.println(arr[3]); //3
以上是关于Java——StringBuffer/StringBuilder以及和string区别的主要内容,如果未能解决你的问题,请参考以下文章
全面解释java中StringBuilderStringBufferString类之间的关系