Java--StringBuffer
来源:互联网 发布:zh 那汀女装淘宝有吗 编辑:程序博客网 时间:2024/04/28 13:34
一、StringBuffer类:线程安全的可变字符序列
1、StringBuffer类
[1]线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
[2]可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
[3]StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
2、StringBuffer和String的区别
[1]String是一个不可变的字符序列
[2]StringBuffer是一个可变的字符序列
二、StringBuffer类的构造方法
1、StringBuffer的构造方法:
[1]public StringBuffer():无参构造方法
[2]public StringBuffer(int capacity):指定容量的字符串缓冲区对象
[3]public StringBuffer(Stringstr):指定字符串内容的字符串缓冲区对象
2、StringBuffer的方法:
[1]publicint capacity():返回当前容量。理论值
[2]publicint length():返回长度(字符数)。 实际值
三、StringBuffer的添加功能
1、public StringBuffer append(Stringstr):
可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
2、public StringBuffer insert(int offset,Stringstr):
在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
四、StringBuffer的删除功能
1、public StringBuffer deleteCharAt(int index):
删除指定位置的字符,并返回本身
2、public StringBuffer delete(int start,int end):
删除从指定位置开始指定位置结束的内容,并返回本身
五、StringBuffer的替换功能
1、public StringBuffer replace(int start,int end,Stringstr):
从start开始到end用str替换
2、StringBuffer的反转功能
public StringBuffer reverse();字符串反转
六、StringBuffer的截取功能
1、public String substring(int start):
从指定位置截取到末尾
2、public String substring(int start,int end):
截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
注意:返回值类型不再是StringBuffer本身,返回String类型
七、StringBuffer和String的相互转换
1、String -- StringBuffer
[1]通过构造方法
[2]通过append()方法
2、StringBuffer -- String
[1]通过构造方法
[2]通过toString()方法
[3]通过subString(0,length);
八、StringBuffer和StringBuilder的区别
1、StringBuffer和StringBuilder的区别
[1]StringBuffer是jdk1.0版本的,是线程安全的,效率低
[2]StringBuilder是jdk1.5版本的,是线程不安全的,效率高
2、String和StringBuffer,StringBuilder的区别
[1]String是一个不可变的字符序列
[2]StringBuffer,StringBuilder是可变的字符序列
package com.cat.stringbuffer;public class StringBufferMethod {public static void main(String[] args) {/* 一、StringBuffer类:线程安全的可变字符序列 1、StringBuffer类 [1]线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 [2]可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。 [3]StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。 2、StringBuffer和String的区别 [1]String是一个不可变的字符序列 [2]StringBuffer是一个可变的字符序列 二、StringBuffer类的构造方法 1、StringBuffer的构造方法: [1]public StringBuffer():无参构造方法 [2]public StringBuffer(int capacity):指定容量的字符串缓冲区对象 [3]public StringBuffer(String str):指定字符串内容的字符串缓冲区对象 2、StringBuffer的方法: [1]public int capacity():返回当前容量。理论值 [2]public int length():返回长度(字符数)。 实际值 三、StringBuffer的添加功能 1、public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身 2、public StringBuffer insert(int offset,String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身 四、StringBuffer的删除功能 1、public StringBuffer deleteCharAt(int index): 删除指定位置的字符,并返回本身 2、public StringBuffer delete(int start,int end): 删除从指定位置开始指定位置结束的内容,并返回本身 五、StringBuffer的替换功能 1、public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换 2、StringBuffer的反转功能 public StringBuffer reverse();字符串反转 六、StringBuffer的截取功能 1、public String substring(int start): 从指定位置截取到末尾 2、public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置 注意:返回值类型不再是StringBuffer本身,返回String类型 七、StringBuffer和String的相互转换 1、String -- StringBuffer [1]通过构造方法 [2]通过append()方法 2、StringBuffer -- String [1]通过构造方法 [2]通过toString()方法 [3]通过subString(0,length); 八、StringBuffer和StringBuilder的区别 1、StringBuffer和StringBuilder的区别 [1]StringBuffer是jdk1.0版本的,是线程安全的,效率低 [2]StringBuilder是jdk1.5版本的,是线程不安全的,效率高 2、String和StringBuffer,StringBuilder的区别 [1]String是一个不可变的字符序列 [2]StringBuffer,StringBuilder是可变的字符序列 * */initMethod();addMethod();//添加//String和StringBuffer作为参数传递System.out.println("-------------");String s1 = "abc";System.out.println(s1);change(s1);//Ctrl+1创建方法System.out.println(s1);//方法弹栈了System.out.println("-------------");StringBuffer sb1 = new StringBuffer();sb1.append("abc");System.out.println(sb1);change(sb1);//Ctrl+1创建方法System.out.println(sb1);}public static void change(StringBuffer sb1) {sb1.append("efg");}public static void change(String s1) {s1 = s1 + "efg";}private static void addMethod() {System.out.println("================添加功能=================");StringBuffer sb1 = new StringBuffer();System.out.println(sb1.toString());StringBuffer sb2 = sb1.append(true);System.out.println(sb2.toString());StringBuffer sb3 = sb1.append("abc");System.out.println(sb3.toString());StringBuffer sb4 = sb1.append(100);System.out.println(sb4.toString());System.out.println("--------");System.out.println(sb1.toString());//trueabc100System.out.println(sb2.toString());//trueabc100System.out.println(sb3.toString());//trueabc100System.out.println(sb4.toString());//trueabc100/* StringBuffer是字符串缓冲区,是一个不可变的字符序列,当new的时候在堆内存创建 了一个对象,底层是一个长度为16的字符数组,当调用添加的方法时,不会再重新创建对象, 只是不断地向元缓冲区添加字符,其实这样操作就是四个对象指向同一个对象; * */StringBuffer sb11 = new StringBuffer("abc");//StringBuffer sb12 = sb11.insert(4, "123"); //StringIndexOutOfBoundsExceptionStringBuffer sb12 = sb11.insert(1, "123");System.out.println(sb12);StringBuffer sb13 = sb11.reverse();//反转功能System.out.println(sb13);}private static void initMethod() {System.out.println("================构造方法=================");StringBuffer sb1 = new StringBuffer();System.out.print(sb1.length()); //容器中的字符个数,实际值System.out.println(" " + sb1.capacity()); //容器中的初始容量,理论值StringBuffer sb2 = new StringBuffer(10);System.out.print(sb2.length()); System.out.println(" " + sb2.capacity()); StringBuffer sb3 = new StringBuffer("abc");System.out.print(sb3.length()); System.out.println(" " + sb3.capacity()); //length + 初始容量}}
- java- Stringbuffer
- JAVA StringBuffer
- java StringBuffer
- Java StringBuffer
- java--StringBuffer
- java StringBuffer
- Java--StringBuffer
- Java StringBuffer
- Java StringBuffer
- JAVA StringBuffer
- JAVA-StringBuffer
- String & StringBuffer In JAVA
- java字符串String&StringBuffer
- Java中的StringBuffer
- JAVA基础之StringBuffer
- Java.StringBuffer-StringBuilder
- JAVA的StringBuffer类
- JAVA的StringBuffer类
- 环境变量的配置
- C语言中的二进制I/O:fread、fwrite
- 当我们在使用Flask时,如何如记录日志
- 在2017年,如何将你的小米4刷上Windows 10 mobile?(后附大量图赏)
- phpstorm设置远程开发
- Java--StringBuffer
- 一笔画问题
- JAVA程序员学习之路
- 【杭电OJ】1873--看病要排队(优先队列)
- 07.debug
- Cordova实现文件创建和读写操作(支持Android和IOS等)
- 08.全部快捷键使用
- WiFi 休眠
- 既然设置了ARC,为什么还要使用@autoreleasepool