一. String的构造方法
-
public String():创建一个空白字符串对象。不含有任何内容
-
public String(char[] chs):根据字符数组的内容,来创建字符串对象
-
public String(byte[] bys):根据字节数组的内容,来创建字符串对象
-
String s="abc":直接赋值的方式创建字符串对象,内容是abc
最常用的还是最后一种,直接赋值
需要注意的是:
对于第一种构造方法,他们的内容相同,但地址不同
char[] chs= {
'a','b','c'};
String s1=new String(chs);
String s2=new String(chs);
//比较地址是否相同
System.out.println(s1==s2);//返回false
//比较字符串内容是否相同
System.out.println(s1.equals(s2));//返回true
对于直接赋值的方法:他们的内容和地址都相同
String s3="abc";
String s4="abc";
//比较地址是否相同
System.out.println(s3==s4);//返回true
//比较字符串内容是否相同
System.out.println(s3.equals(s4));返回true
下边这张图可以详细说明String创建时内存分配情况
二. 利用String进行字符串拼接
因为String创建完之后,它的值不允许被修改,因此每次对String对象进行拼接的时候都会重新创建一个新的String对象,这种操作既耗时又浪费内存空间。
因此可以利用JAVA提供的StringBuilder类来解决这个问题
三. StringBuilder构造方法
-
public StringBuilder()
- 创建一个空白可变的字符串对象,不含有任何内容
-
public StringBuilder(String str)
- 根据字符串的内容,来创建可变字符串对象
四.StringBuilder的添加和反转方法
public StringBuilder append(任意类型)
//添加数据,并返回本身
public StringBuilder reverse()
//返回相反的字符序列
public class stringbuilderDemo {
public static void main(String[] args) {
//public StringBuilder():创建一个空白可变的字符串对象,不含有任何内容
StringBuilder s1=new StringBuilder();
System.out.println("s1:"+s1);
//输出s1:
System.out.println("s1.length:"+s1.length());
//输出s1.length:0
//public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
StringBuilder s2=new StringBuilder("helloworld");
System.out.println("s2:"+s2);
//输出s2:helloworld
System.out.println("s2.length:"+s2.length());
//输出s2.length:10
//public StringBuilder append(任意类型):添加数据,并返回对象本身
StringBuilder s3=new StringBuilder();
StringBuilder s4=s3.append("hello");
System.out.println("s3:"+s3);
//输出s3:hello
System.out.println("s4:"+s4);
//输出s4:hello
System.out.println(s3==s4);
//输出true
s3.append("world").append("100");
System.out.println(s3);
//输出helloworld100
s3.reverse();
System.out.println(s3);
//输出001dlrowolleh
}
}
五.StringBuilder和String的相互转换
- (1).StringBuilder->String
-
public String toString()
- 通过toString方法将StringBuilder转化为String
- (2).String->StringBuilder
-
public StringBuilder(String s)
- 通过构造方法就可以实现把String转化为StringBuilder
public class stringbuilderDemo {
public static void main(String[] args) {
StringBuilder s1=new StringBuilder();
s1.append("hello");
String s2=s1.toString();
System.out.println(s2); //输出hello
String s3="helloworld";
StringBuilder s4=new StringBuilder(s3);
System.out.println(s4); //输出helloworld
}
}