目录
1.StringBuilder
1.1StringBuilder概述
先来看一段代码:
package Java.test;
public class test {
public static void main(String[] args) {
//用户名和密码
String s="hello";
s +="world";
System.out.println(s);
}
}
如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存空间,而这种操作还不可避免。那么有没有一种比较好的方式可以解决这个问题呢?答案是肯定的,我们可以通过Java提供的 StringBuilder类就来解决这个问题。
概述:
StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象中的内容是可变的
String 和 StringBuilder 的区别:
String: 内容是不可变的
StringBuilder: 内容是可变的
1.2 StringBuilder 构造方法
方法名 | 说明 |
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
代码演示:
package Java.test; import java.util.Scanner; public class test { public static void main(String[] args) { //public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容 StringBuilder s=new StringBuilder(); System.out.println("s:"+s); System.out.println("s.length():"+s.length()); //public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象 StringBuilder s1=new StringBuilder("hello"); System.out.println("s1:"+s1); System.out.println("s1.length():"+s1.length()); } }
运行结果:
1.3StringBuilder的添加和反转方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
代码演示append(任意类型) :
package Java.test; import java.util.Scanner; public class test { public static void main(String[] args) { //创建对象 StringBuilder s=new StringBuilder(); StringBuilder s1=new StringBuilder(); //public StringBuilder append(任意类型)添加数据,并返回对象本身 s.append("zyy"); s.append("and"); s.append("jwei"); System.out.println("s:"+s); System.out.println("**********"); //链式编程 s1.append("0124").append("and").append("0828"); System.out.println("s1:"+s1); } }
运行结果:
代码演示reverse() :
package Java.test; import java.util.Scanner; public class test { public static void main(String[] args) { //创建对象 StringBuilder s=new StringBuilder(); //链式编程 s.append("0124").append("and").append("0828"); System.out.println("s:"+s); System.out.println("**********"); //public StringBuilder reverse() 返回相反的字符序列 s.reverse(); System.out.println("s:"+s); } }
运行结果:
1.4 StringBuilder和 String相互转换
1.StringBuilder转换为String
public String toString(): 通过toString()就可以实现把StringBuilder转换为String
2.String转换为StringBuilder
public StringBuilder(String s): 通过构造方法就可以实现把String转换为StringBuilder
代码演示toString() :
package Java.test; import java.util.Scanner; public class test { public static void main(String[] args) { //创建对象 StringBuilder s=new StringBuilder(); //链式编程 s.append("0124").append("and").append("0828"); //StringBuilder转换为String //String s1=s; 这是个错误的写法 //public String toString() String s1=s.toString(); System.out.println(s1); } }
运行结果:
代码演示StringBuilder(String s):
package Java.test; import java.util.Scanner; public class test { public static void main(String[] args) { //创建对象 String s="hello"; //String转换为StringBuilder //StringBuilder s1=s; 这是个错误的写法 //publicStringBuilder(Strings) StringBuilder s1=new StringBuilder(s); System.out.println(s1); } }
运行结果: