【JavaSE笔记】Java常用类及其方法(三)_StringBuffer

来源:互联网 发布:死飞自行车多少钱淘宝 编辑:程序博客网 时间:2024/05/01 17:34
本期知识点:
StringBuffer类的常用方法

类StringBuffer:

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。
线程安全——同步——效率低
线程不安全—不同步—效率高

(问题)1String、StringBuffer(线程安全,效率低)、StringBulider(不安全:效率高)的区别?

a. 共同点:

i. 都是字符串类型。在内存中始终返回的是一个字符串类型

b. 不同点:

i. String一旦被赋值,其值不能再改变,是不可变的字符序列。StringBuffer和StringBuilder是一个可变字符序列,都的API提供的方法,
ii. StringBuffer:线程安全,同步,效率低,用在多线程中使用。
iii. StringBulider:线程不安全,不同步,效率高;也是一个可变字符序列,一般用来替代StringBuffer,执行效率快(单个线程中)。

(面试题)StringBuffer和数组的区别?

a. 相同点:

i. 都是一个容器。

b. 不同点:

i. 数组可以存储多个元素,这多个元素必须保证数据类型一致。
ii. StringBuffer在内存中始终是一种数据类型,都是字符串。

StringBuffer常用的方法:

a. 构造方法
public StringBuffer()   构造一个字符串缓冲区,构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
public StringBuffer(int capacity)  构造一个字符串缓冲区,指定容量

public StringBuffer(String str) 将str字符串创建到字符串缓冲区中:str+16


b. 获取方法
public int length()  获取字符串长度

public int capacity()  获取字符串缓冲区的容量大小


c. 添加功能
public StringBuffer append(String str)  表示在字符串缓冲追加,返回字符串缓冲区本身

public StringBuffer insert(int offset,String str)  在指定位置插入str这个字符串,返回缓冲区本身


d. 删除功能
public StringBuffer deleteCharAt(int index) 删除指定索引处的字符,返回的是字符串缓冲区本身

public StringBuffer delete(int start,int end)   删除从指定位置开始,到指定位置结束,返回字符串缓冲区本身


e. 替换功能

public StringBuffer replace(int start,int end,String str)  从指定位置开始到指定位置结束进行替换,替换的内容为新的字符串,返回字符串缓冲区本身


f. 反转功能

public StringBuffer reverse( )   是StringBuffer的特有功能。


g. 截取功能
public String substring(int start)
public String substring(int start,int end)  返回的是字符串类型(String),而不是字符串缓冲区本身!★

1. StringBuffer常用的构造方法、获取方法

例:
public class StringBuffer类的构造方法 {public static void main(String[] args) {//public StringBuffer() :构造一个字符串缓冲区,构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符StringBuffer a = new StringBuffer();System.out.println(a.length());//0System.out.println(a.capacity());//空字符串缓冲区:初始默认容量为16System.out.println("——————————");//public StringBuffer(int capacity):构造一个字符缓存区,指定容量。StringBuffer b = new StringBuffer(50);System.out.println(b.length());//0System.out.println(b.capacity());//50System.out.println("——————————");StringBuffer c = new StringBuffer("HelloWorld");//StringBuffer不能直接赋值;错误写法//StringBuffer c = s ;//StringBuffer c = "HelloWorld";}}

2. 添加功能

例:
public class StringBuffer类的删除功能 {public static void main(String[] args) {//构建字符串缓冲对象StringBuffer a = new StringBuffer();//添加a.append("Hello");a.append("World");System.out.println(a);//HelloWorld//public StringBuffer deleteCharAt(int index):删除指定索引处的字符,返回的是字符串缓冲区本身a.deleteCharAt(6);System.out.println(a);//HelloWrlda.deleteCharAt(7);System.out.println(a);//HelloWrd///public StringBuffer delete(int start,int end):删除从指定位置开始,到指定位置结束,返回字符串缓冲区本身System.out.println("——————————");StringBuffer b = new StringBuffer("LinkinPark");b.delete(3, 6);System.out.println(b);//LinPark}}


3. 删除功能

例:

public class StringBuffer类的替换_反转_截取 {public static void main(String[] args) {//字符串替换;//创建字符缓冲区对象StringBuffer a = new StringBuffer();//最加字符串:a.append("Hello").append("World");System.out.println(a);//public StringBuffer replace(int start,int end,String str)从指定位置开始到指定位置结束进行替换,替换的内容为一个新的字符串,返回字符串缓冲区本身a.replace(2, 6, "WHAT");System.out.println(a);//HeWHATorld;//字符串反转;StringBuffer b = new StringBuffer("LinkinPark");b.reverse();System.out.println(b);//kraPnikniL//字符串截取功能;返回的是新的字符串类型,而不是字符串缓冲区本身!StringBuffer c = new StringBuffer("ImagineDragons");String d = c.substring(7);System.out.println(d);//Dragons}}


4. 替换功能、反转功能、截取功能

例:
public class StringBuffer类的替换_反转_截取 {public static void main(String[] args) {//字符串替换;//创建字符缓冲区对象StringBuffer a = new StringBuffer();//最加字符串:a.append("Hello").append("World");System.out.println(a);//public StringBuffer replace(int start,int end,String str)从指定位置开始到指定位置结束进行替换,替换的内容为一个新的字符串,返回字符串缓冲区本身a.replace(2, 6, "WHAT");System.out.println(a);//HeWHATorld;//字符串反转;StringBuffer b = new StringBuffer("LinkinPark");b.reverse();System.out.println(b);//kraPnikniL//字符串截取功能;返回的是新的字符串类型,而不是字符串缓冲区本身!StringBuffer c = new StringBuffer("ImagineDragons");String d = c.substring(7);System.out.println(d);//Dragons}}




阅读全文
0 0
原创粉丝点击