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

本期知识点:
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());//0
				System.out.println(a.capacity());//空字符串缓冲区:初始默认容量为16
				System.out.println("——————————");
				//public StringBuffer(int capacity):构造一个字符缓存区,指定容量。
				StringBuffer b = new StringBuffer(50);
				System.out.println(b.length());//0
				System.out.println(b.capacity());//50
				System.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);//HelloWrld
				a.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
			}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值