java stringbuffer倒置_Java程序设计05——String和StringBuffer

String和StringBuffer

String和Stringbuffer类1.String的声明string s1="abc";

string s2 = new String("abc");2.String内容的比较

在String中,比较两个字符串是否相同,不能使用==,应使用equals()方法。

1.“==”方法:比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同String str1 = "zjd";//直接赋值

String str2 = new String ("zjd");//通过new赋值

String str3 = str2;

System.out.println("str1 == str2-->"+(str1 == str2));

System.out.println("str1 == str3-->"+(str1 == str3));

System.out.println("str2 == str3-->"+(str2 == str3));

218f857c160815c723f832b0af9be6c8.png

原因:每一个String对象的内存存储其实都是在堆内存中。

"=="是进行数值比较的,因为str1和str2的在堆内存的地址不一样所以:str1和str2不相等–>false

85eced8436a837874a9d3d135efd663b.png

2.“equals()"方法:比较的是两个对象的内容是否相等String str1 = "zjd";//直接赋值

String str2 = new String ("zjd");//通过new赋值

String str3 = str2;

System.out.println("str1 equals str2-->"+(str1.equals(str2)));

System.out.println("str1 equals str3-->"+(str1.equals(str3)));

System.out.println("str2 equals str3-->"+(str2.equals(str3)));

f502daae848f6d4dc4b100c43f9fcb56.png

原因:因为equals()方法的作用是将内容进行比较,所以此处返回的结果都为true。3.两种实例化对象的区别

一个字符串就是一个String 类中的匿名对象,匿名对象就是已经开辟了堆内存空间可以直接使用的对象。

1.直接赋值String str1 = "zjd";//直接赋值

String str2 = "zjd";

String str3 = "zjd";

System.out.println("str1 == str2-->"+(str1 == str2));

System.out.println("str1 == str3-->"+(str1 == str3));

System.out.println("str2 == str3-->"+(str2 == str3);

52d1e9839e79b4f432930179a1f122e1.png

原因:实际上就是把一个在堆内存中开辟好的空间使用权给str1,并且如果一个字符串已经被一个名称所引用,则以后再有相同的名称的字符串声明时,就不会重新开辟新地址了

f92bc03a532fb54b8c0780aa427135e4.png

2.通过new的方式实例化String str1 = new String("zjd");

dd1efbf44e5ea01b967d1257a9cd6339.png4.一旦被初始化,字符串内容便不可以被改变String str1 = "zjd";

str1 =str1+"zka";

System.out.println(str1);

结果:zjdzka

6c58cd25c3cd9a8ef71e22d0e34bb19c.png

二.Stringbuffer1.特点

1.长度可以变化

2.通过tostring()方法变为string2.声明以及CURD

1.声明StringBuffer s = new StringBuffer();

StringBuffer s = new StringBuffer(“abc”);

String s1 = sb1.toString();

2.CreateStringBuffer sb = new StringBuffer(“abc”);

sb.append(true);

结果:abctrue

3.UpdateStringBuffer sb = new StringBuffer(“TestString”);

sb.insert(4,false);

结果:TestfalseString

StringBuffer sb = new StringBuffer("helloworldjava");

sb.replace(5, 10, "节日快乐");

结果:hello节日快乐java

StringBuffer sb = new StringBuffer(“abc”);

sb.setCharAt(1,’D’);

结果:aDc

4.DeleteStringBuffer sb = new StringBuffer(“Test”);

sb. deleteCharAt(1);

结果:Tst

StringBuffer sb = new StringBuffer(“TestString”);

sb. delete (1,4);

结果:TString

5.反转StringBuffer sb = new StringBuffer(“abc”);

sb.reverse();

结果:”cba”。

6.获取(capacity=length+16)StringBuffer sb = new StringBuffer("Hello");

System.out.println("length = "+sb.length);

System.out.println("capacity = "+sb.capacity);

结果:5 21

StringBuffer sb = new StringBuffer("Java is a programming language : ");

sb.charAt(2)

结果:v

StringBuffer sb = new StringBuffer("Hello");

System.out.println(sb.indexOf(2));

System.out.println();

StringBuffer sb = new StringBuffer("sdbajd");

String s = sb.substring(5);

System.out.println("s:"+s);

String ss = sb.substring(3,4);

String ss = sb.substring(3,5);

System.out.println("ss:"+ss);

结果:d a aj

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值