Java计基础---常用类之StringBuilder类--String、StringBuilder和StringBuffer 的区别

常用类之StringBuilder类

StringBulider 类:也是一个字符串类.是一个可变的字符序列,在类中提供了可以改变字符串内容的常用的方法。
StringBulider 和 String 类的区别:
1.String是一个不可变的字符序列,没有提供修改字符串内容的方法。String长度不可以发生变化的。
2.StringBulider 是一个可变的字符序列,允许在原来的基础上对字符串的内容进行修改。StringBuilder长度可以改变,可以认为StringBuilder是一个可以伸缩的容器,用于存储字符串

StringBuilder构造方法

1、构造方法作用:创建当前对象,将其他类型的数据,转换成当前类型
2、StringBuilder构造方法
StringBuilder();创建一个生成器,默认的容器大小是16
StringBuilder(int capacity);创建一个生成器,初始容量大小为capacity
StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。
3、获取容积的方法
capacity()返回当前的容量 获取的是当前生成器中容器的大小
length()返回的是当前生成器中字符的个数

StringBuilder中的添加方法

1、append()可以将任意的类型,转成字符,添加到生成器中
2、insert(int index,任意类型)方法,可以将任意的数据类型添加到指定的位置

StringBuilder中的删除方法

1、deleteCharAt() 移除此字符串指定位置上的 char(字符)
2、delete(int start ,int end) 删除指定范围内的字符。 包含头不包含尾

StringBuilder替换和反转方法

1、replace(int start,int end,String str)使用给定 String 中的字符替换此序列的子字符串中的字符。
2、reverse();将原有字符串进行反转

package com.ujiuye.Demos;

public class Demo_4 {
//StringBuilder的反转和替换
	public static void main(String[] args) {
//		StringBuilder,反转
		String str = "123456789";
		StringBuilder sb1 = new StringBuilder(str);
		sb1.reverse();
		System.out.println(sb1);
//		将stringBuilde类型的转成String类型
		String string = sb1.toString();
		System.out.println(string);
//      StringBuilder,替换
		StringBuilder sb2 = new StringBuilder("Hello World");
		sb2.replace(6, 11, "java");
		System.out.println(sb2);
	}

//拓展:
    private static void stringReverse() {
		//String类型的反转
		String str = "abcdefg";
//		将字符串转成字符数组
		char[] chs = str.toCharArray();
		for (int i = 0, j = chs.length - 1; i < j; i++,j--) {
			char temp = chs[i];
			chs[i] = chs[j];
			chs[j] = temp;
		}
//		将字符数组转为字符串
		String str1 = new String(chs);
		System.out.println(str1);
	}
}

StringBuilder和StringBuffer 的区别

共同点:都是可变的字符串,都具有缓冲功能.
不同点:
(1):出现的版本的时间
StringBuffer 在 jdk 1.0 出现的
StringBuilder 在jdk 5.0 出现的
(2):线程安全性来说 ---- 在线程的时候将
StringBuffer 线程安全的,在多线程并发的情况下可以保证数据是正确的
StringBuilder 线程不安全的,在多线程并发的情况下不可以保证数据是正确的
(3): 效率
StringBuffer:效率低
StringBuilder:效率高

String和StringBuilder作为方法的参数

1、String作为方法的参数进行传递,无法修改原值,在被调用的方法中,修改引用指向的对象,和主方法中的引用是无关的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OrZKfYVL-1591255171724)(F:\CSDN\25  常用类之StringBuilder类图片\1.png)]

2、StringBuilder作为方法的参数进行传递,如果在被调用的方法中,修改的是StringBuilder的引用,那么不会改变 主方法中原有对象的数据

在这里插入图片描述

3、StringBuilder作为方法的参数,在被调用的方法中,通过该引用修改了对象的数据

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41401295/article/details/106547329