String、StringBuilder和StringBuffer

本文详细介绍了Java中的String、StringBuilder和StringBuffer。String是不可变对象,适用于简单操作;StringBuilder和StringBuffer都是可变字符串,适合频繁拼接操作,其中StringBuffer线程安全,StringBuilder性能更高。了解这些类的构造方法和常用方法对于优化Java代码至关重要。
摘要由CSDN通过智能技术生成


一、String

​ String类在软件包 [java.lang]内,所以调用他的时候,不需要进行导包。

​ String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

​ 字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 String对象是不可变的,但是它们可以被共享。 例如:

​ String str = “abc”;

  • 构造方法
方法名说明
public String()创建一个空白字符串对象,不含有任何内容
public String(char[] chs)根据字符数组的内容,来创建字符串对象
public String(byte[] bys)根据字节数组的内容,来创建字符串对象
String s = “abc”;直接赋值的方式创建字符串对象,内容就是abc
  • 常用方法

public int length()

返回此字符串的长度。

由该对象表示的字符序列的长度。

比如:

String str = "abc";

System.out.println(str.length()); //得到的输出结果为3

public char charAt(int index)

返回指定索引处的 char值。

指数范围从0到length() - 1 。该字符串的指定索引处的值为char 。 第一个char值是索引0 。

String str = "abc";

System.out.println(str.charAt(0)); //得到的输出结果为a

public boolean contains(CharSequence s)

如果此字符串包含 s , 返回true,否则为false

当且仅当此字符串包含指定的char值序列时才返回true。

String str = "abcdef 啦啦啦";

System.out.println(str.contains("啦啦啦"));//得到的输出为true

public boolean endsWith(String suffix)

测试此字符串是否以指定的后缀结尾。

如果返回true则代表,该字符串是以参数表示的字符串为结尾的; 否则为false 。

String str = "abcdef 啦啦啦";

System.out.println(str.endsWith("哈哈哈"));//得到的输出是false

public boolean equals(Object anObject)

将此字符串与指定对象进行比较。

如果且仅当参数不是null且是表示与该对象相同的字符序列的String对象时,结果为true 。

除了上面提到的,还有很多的常用的方法,可以在实际的应用中,根据需求在帮助文档中自行查找具体的用法,这个String类十分的重要,会经常的使用它,我们一定要牢记。

二、StringBuilder和StringBuffer

StringBuilder类也代表可变字符串对象,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的。它的使用场景是频繁地使用字符串拼接等操作的时候可以使用。

StringBuffer对象则代表一个字符序列可变的字符串,缓冲区就像一个String,但可以修改,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。

StringBuilder和StringBuffer都实现了继承了AbstractStringBuilder(核心类,对char[]进行操作),实现了Serializable接口(支持序列化和反序列化)和CharSequence(主要定义了length、charAt、subSquence方法)

StringBuilder和StringBuffer基本上相似,两个类的构造器和方法也基本相同,但是,StringBuffer是线程安全的,而StringBuilder则没有,所以从性能上面来说,StringBuilder性能稍微高一些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值