一、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性能稍微高一些。