字符串操作类StringBuilde、StringBuffer

1.String类中的equals(Object anObject)
1.equals方法并不是String类的实例方法,它原本是Object类的实例方法,只是String继承Object类,将这个方法重写了。
2.所有的java类都默认继承了Object,包括我们自己定义的Java类。只是我们在自定义java类的时候没有使用extends关键字去继承Object类。【一切皆对象】
equals方法的含义是用来做比较的,比较两个对象是否相同。
面试题:”==” 与 equals方法的区别?
==”常用来比较基本数据类型,8种基本数据类型有byte、short、long、double、char、int、float、boolean,因为变量直接存储的就是他们的值,所以用"=="去比较,比较的就是他们的值。但是复合数据类型用“==”比较的是他的堆内存地址【引用地址】。
“equals”对于复合数据类型比较的也是它的堆内存地址(不能作用于基本数据类型的变量)。
由于String类重写了equals方法所以String类“equals”比较的是存储对象的内容是否相等

在这里插入图片描述

package com.dd.test;

public class TestMain {

	public static void main(String[] args) {
		
		int a =111;
		int b =111;
		
		if(a==b) {
			System.out.println("相等");
		}else {
			System.out.println("不相等");
		}
		
		System.out.println("--------------");
		
		
		Person per1 = new Person();
		Person per2 = new Person();
		//per1=per2;
		if(per1==per2) {
			System.out.println("相等");
		}else {
			System.out.println("不相等");
		}
		System.out.println("--------------");
		
		if (per1.equals(per2)) {
			System.out.println("相等");
		}else {
			System.out.println("不相等");
		}
		System.out.println("--------------");
		
		String str1 = new String("hello");
		String str2 = new String("hello");
		if(str1==str2) {
			System.out.println("相等");
		}else {
			System.out.println("不相等");
		}
		System.out.println("--------------");
		if(str1.equals(str2)) {
			System.out.println("相等");
		}else {
			System.out.println("不相等");
		}
	}

}

7.6.StringBuilder类如何创建对象,有哪些常用方法?
StringBuilder定义:
public final class StringBuilder 一个可变的字符序列
此类提供与StringBuffer相同的API,但不保证线程安全

构造方法:
StringBuilder() 构造一个初始容量为16个字符的空StringBuilder对象。
StringBuilder(CharSequence seq) 通过其他的StringBuilder对象创建一个新的StringBuilder对象
StringBuilder(int capacity) 构造一个由 capacity参数指定的初始容量得空StringBuilder对象。
StringBuilder(String str) 构造一个初始化为指定字符串内容的StringBuilder对象。

package com.StringBuilde;

public class Test1 {

	public static void main(String[] args) {
		//StringBuilder() 构造一个初始容量为16个字符的空StringBuilder对象。 
		StringBuilder stringBuilder1=new StringBuilder();
		//StringBuilder(CharSequence seq) 通过其他的StringBuilder对象创建一个新的StringBuilder对象
		StringBuilder stringBuilder2=new StringBuilder(stringBuilder1);
		//StringBuilder(int capacity) 构造一个由 capacity参数指定的初始容量得空StringBuilder对象。
		StringBuilder  stringBuilder3=new StringBuilder(30);
		//StringBuilder(String str) 构造一个初始化为指定字符串内容的StringBuilder对象。 
		StringBuilder  stringBuilder4=new StringBuilder("hello");
	}

}

在这里插入图片描述

package com.StringBuilde;

public class Test2 {

	public static void main(String[] args) {
		StringBuilder str1=new StringBuilder();
		System.out.println("没有append之前的初始容量=="+str1.capacity());
		str1.append("skr");
		str1.append("111");
		str1.append("true");
		str1.append("12.5");
		str1.append("果果");
		
		str1.append("skr");
		str1.append("111");
		str1.append("true");
		str1.append("12.5");
		str1.append("果果");
		//System.out.println("str1=="+str1);
		System.out.println("append之后的容量=="+str1.capacity());
		//StringBuilder容量扩展规则==当前容量*2+2
		System.out.println("charAt(3)=="+str1.charAt(3));	//charAt(3)==1
		System.out.println("-------------");
		System.out.println("delete(10,14)=="+str1.delete(10,14));	//delete(10,14)==skr111true果果skr111true12.5果果
		System.out.println("-------------");
		System.out.println("deleteCharAt(3)=="+str1.deleteCharAt(3));	//删除第n个位置的  deleteCharAt(3)==skr11true果果skr111true12.5果果
		System.out.println("-------------");
		System.out.println("indexOf('r')=="+str1.indexOf("r"));	//第一个r出现的位置 indexOf('r')==2
		System.out.println("-------------");
		System.out.println("lastIndexOf('r')=="+str1.lastIndexOf("r"));	//最后一个r出现的位置  lastIndexOf('r')==18
		System.out.println("-------------");
		System.out.println("insert(11,30)=="+str1.insert(11,30));	// 添加insert(11,30)==skr11true果果30skr111true12.5果果
		System.out.println("-------------");
		System.out.println("length=="+str1.length());	//长度 length==29
		System.out.println("-------------");
		System.out.println("replace(8,12,'false')=="+str1.replace(8,12,"false"));
		//System.out.println("reverse()=="+str1.reverse()); //倒置
		System.out.println("-------------");
		System.out.println("substring(5, 9) =="+str1.substring(5, 8));
	}

}

7.7.String类与StringBuilder类之间的相互转换
String转换成StringBuilder—》StringBuilder(String str)
StringBuilder转换成String–》StringBuilder的toString()
String的构造方法String(StringBuilder builder)
7.8.StringBuffer类如何创建对象,有哪些常用方法?
StringBuffer定义:
public final class StringBuffer一个可变的字符序列[线程安全]
构造方法
在这里插入图片描述

7.9.String类与StringBuffer类之间的相互转换
String转换成StringBuffer—》StringBuffer(String str)
StringBuffer转换成String–》StringBuffer的toString()
String的构造方法String(StringBuffer buffer)

面试题:String、StringBuilder、StringBuffer的区别?
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值