StringBuilder
String和StringBuilder的区别
- String 是不可变的
- StringBuilder 是可变的
StringBuilder的使用
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白的 StringBuilder 对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串内容,创建一个 StringBuilder 对象 |
demo:
package com.itxs.demo03;
/**
* @Classname : demo01
* @Description : TODO StringBuilder类型
* @Author : lin_refuel@qq.com
*/
public class demo01 {
public static void main(String[] args) {
//字符串本身可以当作一个类进行使用,但是StringBuilder需要通过new开辟空间
//通过StringBuilder定义出空字符
StringBuilder s1 = new StringBuilder();
System.out.println(s1);
System.out.println(s1.length());//输出s1对象里面的字符串的长度
//StringBuilder定义一个对象s2, 传递字符串"小肆"
StringBuilder s2 = new StringBuilder("小肆");
System.out.println(s2);
System.out.println(s2.length());//输出小肆的长度
}
}
运行结果:
StringBuilder的两个常用的方法
常用方法append方法
可以在字符串后添加新的字符串进行拼接
demo:
package com.itxs.demo03;
/**
* @Classname : demo02
* @Description : TODO StringBuilder 常用的方法append
* @Author : lin_refuel@qq.com
*/
public class demo02 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("hello");
System.out.println(sb);//正常输出字符串hello
System.out.println("==============================");
//调用StringBuilder里面的方法append
sb.append( "java");//拼接到hello后面
sb.append(" StringBuilder");//拼接到java后面
System.out.println(sb);//输出拼接后的内容
System.out.println("================================");
//append的返回值是一个StringBuilder类型,可以通过返回值直接调用append
sb.append(" java").append(" StringBuild");
System.out.println(sb);//验证返回值调用append的结果
System.out.println("=================================");
//可以通过sb.append(" java").append(" StringBuild"),因为返回值就是一个StringBuilder类型
System.out.println(sb.append(" java").append(" StringBuild"));
}
}
运行结果:
常用的方法reverse
reverse方法可以把字符串进行逆序输出
demo:
package com.itxs.demo03;
/**
* @Classname : deMO04
* @Description : TODO StringBuilder中的reverse方法
* @Author : lin_refuel@qq.com
*/
public class deMO04 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("hello javaSE StringBuilder");
System.out.println(sb);//正常输出字符串
System.out.println("=========================");
//调用reverse方法
sb.reverse(); //实现逆序输出字符串
System.out.println(sb);
System.out.println("=========================");
//reverse返回值同样也是一个StringBuilder类型,可以直接输出
System.out.println(sb.reverse().toString());//转成字符串输出
}
}
运行结果:
对象的连贯操作
字符串尾巴拼接新的字符串
demo:
定义一个类命名为MyString
package com.itxs.demo03;
/**
* @Classname : MyString
* @Description : TODO
* @Author : lin_refuel@qq.com
*/
public class MyString {
private String str = "";//空串(没有任何字符)
//无参数构造方法
public MyString(){
}
//带参数的构造方法
public MyString(String str){
this.str = str;
}
//定义一个字符串拼接的方法,返回一个实例化对象
public MyString append(String str){
this.str += str;//字符串拼接
return this;//个人感觉返回的是一个类,
}
//输出字符串的方法
public void printMyString(){
System.out.println(this.str);
}
}
定义一个测试类
package com.itxs.demo03;
/**
* @Classname : test
* @Description : TODO 测试类
* @Author : lin_refuel@qq.com
*/
public class test {
public static void main(String[] args) {
MyString msb = new MyString();
//连贯调用MyString类里面的append方法
//每次掉append都可以返回一个Mystring类,通过类继续调用append
msb.append(" hello").append(" javaSE").append(" StringBuild").printMyString();
}
}
运行结果:
String和StringBuilder之间的转换
-
StringBuilder 转换为 String
public String toString()
:通过 toStrong 方法就可以将 StringBuildr 对象转换为 String -
String 转换为 StringBuilder
public StringBuilder(String str)
:通过构造方法可以实现将 String 对象转换为 StringBuilder