Java字符串String基础知识大全(StringBuilder,StringJoiner)

目录

String

String概述

创建String对象的两种方式

字符串常量池

字符串常用方法

字符串的比较

注意

其他方法总结

StringBuilder

StringBuilder概述

 StringBuilder构造方法

 StringBuilder常用方法​编辑

StringJoiner

StringJoiner的构造方法

 StringJoiner的成员方法


String

String概述

  • 字符串内容不会发生改变,对象创建之后不能被更改。
  • 字符串拼接产生一个新的字符串
// 这种情况是创建了一个新的字符串并赋值给name,整个过程共创建了2个字符串

String name = "尼古拉斯·阿玮";
name = "三连加投币.阿玮";

1.Strin是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。
2.Java程序中的所有字符串文字(例如“abcdefg")都被实为此类的对象。
3.字符串不可变,它们的值在创建后不能被更改

创建String对象的两种方式

// 直接赋值
String s1="abc";


// 传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
char[]chs={'a',‘b','c",'d"};
String s4=new String(chs);

// 传递一个字节数组,根城字节数组的内容再创建一个新的字符串对象
// 应用场场景:以后在网格当中传输的数据其卖都是字节信息
// 我们一般要把字节信息进行转换,转成字行串,此时就要用到这个构造了。
byte[]bytes={97,98,99,100};
String s5=new String(bytes);
System.out.printin(s5);//abcd

字符串常量池

只有直接赋值获得的String对象存于此。

如下图,要给s2赋值回去串池中观察,这个字符串已经存在了,就会直接复用已经有的存在。 

 

 而如下图所示,手动new出来的,要从堆内存的数组中找到元素,在堆内存中创建一个新的小空间存储字符串,这种就没法复用。

字符串常用方法

字符串的比较

如下图,第一行两个比较结果为true和false,第一个图中因为采用了复用,所以地址值相同,所以值为true,第三个图因为一个是直接赋值,一个是new出来的,地址不同,结果为false

 

注意

要记住“==”比较的情况在不同数据类型上有区别!!!

很多情况下“==”不适合string的比较,要比较字符串对象中的内容是否相同?以及是否忽略大小写?请参考下图

其他方法总结


StringBuilder

StringBuilder概述

  • StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。所以一般的用处是用此对象当作一种工具来操纵字符串,用完之后将操作完的内容tostring()就变为字符串了
  • Java对StringBuilder做过特殊处理,其打印对象不是地址值而是属性值
  • 作用:提高字符串的操作效率
  • (由于String对象内容不可改变,所以直接用s1+s2+s3+s4+s5会在中间创建很多对象,占用内存,效率不高)

 StringBuilder构造方法

 

 StringBuilder常用方法

StringJoiner

  • Stringjoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。
  • 作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用。
  • JDK8出现的

StringJoiner的构造方法

下图中黄色部分是指定间隔符号,或同时指定间隔符号和开始结束符号的示例代码,绿字是会输出的结果:

 StringJoiner的成员方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丹牛Daniel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值