这是今天学习java基础第13天的一部分内容。
1、stringbuffer 是一个线程安全的可变字符序列
2、string和stringbuffer区别:后者长度和内容可变,前者不可变。如果用stringbuffer做字符串拼接,不会浪 费太 多 的资源
3、添加功能:
append(x)可以吧任意类型添加到字符串缓冲区。
表示创建了缓冲区,追加完后返回的是本身,没有重新开辟空间。
4、- StringBuffer sb1=new StringBuffer();
- StringBuffer sb2=sb1.append("hello");
- System.out.println("sb1="+sb1); //hello
- System.out.println("sb2="+sb2); //hel
- System.out.println(sb1==sb2); //true
复制代码
5、所以用sb.append(“hello”)就可以了
或者sb.append().append().append(); 链式编程
6、public StringBuffer insert(int offset,String str)
将任意类型数据插入指定位置的字符序列中。
sb.insert(5,"helloworld");
7、删除数据
public StringBuffer delete(int start,int end)
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。
注意这里包含start,不包含end。
8、public StringBuffer deleteCharAt(int index)
移除此序列指定位置的 char。此序列将缩短一个 char。
9、替换功能
public StringBuffer replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。先将子字符串中的字符移除,然后将指定的
String 插入 start。(如果需要,序列将延长以适应指定的字符串。)
10、public StringBuffer reverse()
将此字符序列用其反转形式取代。
public String substring(int start)返回一个新的 String,它包含此字符序列当前所包含的字符子序列。该子字符串始于指定索引处的字符,一直到此字符串末尾。
注意这里返回的是string类型,不是stringbuffer类型。
11、public String substring(int start,int end)
返回一个新的 String,它包含此序列当前所包含的字符子序列。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符。
12、string和stringbuffer之间的转换。
通过构造方式把string转换成stringbuffer类型
StringBuffer sb=new StringBuffer(s);
或者用StringBuffer的append()函数。
StringBuffer转换成String类型
通过构造函数: String str=new String(buffer)
或者通过String str-buffer.toString();函数。
13、StringBuild一个可变的字符序列, 不同步,不安全,效率高,在字符串缓冲区被单个线程使用的时候使用很普遍。和stringBuffer方法一样。
14、.string,stringbuffer和stringbuilder的区别:
string是内容和长度不可变动的,其他的可变,
stringbuffer是同步的,数据安全,效率低,stringbuilder是不同步的,数据不安全,效率高(多线程)
15、stringBuffer和数组的区别
StringBuffer虽然可以添加任意类型,但是最终是字符串类型,但是数组只能添加一种类型。
string和StringBuffer做参数。
string s="ssss",则string做形参,不会改变原先的值,只是值传递,
stringBuffer做形参,是引用类型,赋值不会改变原来的值,但是方法append会改变原来的值,。 |
|