StringBuilder类的常用方法 增删改查、反转、互转

public class TestStringBuilder {


public static void main(String[] args) {
//StringBuilder(String str) - 根据字符串来构造对象。
StringBuilder sb1 = new StringBuilder("hello");
System.out.println("sb1 = " + sb1); //调用toString() hello
//- 初始容量为:16 + 字符串参数的长度。
//- 该类没有重写equals()和hashCode()方法,但重写了toString()方法。

//int capacity() - 用于获取当前对象的容量并返回。
System.out.println("容量是: " + sb1.capacity()); //21 = 16 + 5
//int length()   - 用于返回当前对象的字符个数。
System.out.println("字符个数是: " + sb1.length()); // 5

System.out.println("------------------------");

//【插入】实现向字符串对象sb1中插入指定的字符串内容
//StringBuilder sb2 = sb1.insert(-1,"abcd); 编译正常,运行异常
//StringBuilder类描述的字符序列本身可以改变
//StringBuilder insert(int offset, String str) 
//- 用于将str插入到当前字符串中offset的位置并返回。
StringBuilder sb2 = sb1.insert(0, "abcd");
System.out.println("sb2 = " + sb2); //abcdhello
System.out.println("sb1 = " + sb1); //abcdhello

//String类描述的字符串本身不会改变
String s1 = "hello";
String s2 = s1.toUpperCase();
System.out.println("s2 = " + s2); //HELLO
System.out.println("s1 = " + s1); //hello

//既然调用方法后调用对象本身已经改变了,为啥还返回一模一样的结果呢?
//解析:为了连续调用
//sb1.insert(0, "a").insert(1, true).append("hello").append("too");
        //sb1.insert(0, "12");
        //sb1.append('c');

sb1.insert(4, "1234");
System.out.println("sb1 = " + sb1); //abcd1234hello
sb1.insert(13, "ABCD");
System.out.println("sb1 = " + sb1); //abcd1234helloABCD

System.out.println("---------------------------");
//StringBuilder append(String str) 
//- 用于将str追加到当前字符串的末尾位置。

//向字符串末尾追加内容
StringBuilder sb3 = sb1.append("world");
System.out.println("sb1 = " + sb1); //abcd1234helloABCDworld
System.out.println("sb3 = " + sb3); //abcd1234helloABCDworld

//当插入的字符串超过初始容量时,怎会自动扩大容量
System.out.println("容量是:" + sb1.capacity()); //44
System.out.println("字符个数是: " + sb1.length()); //22

System.out.println("-----------------------------");
//【删】实现字符串中内容的删除,"hello"移除
sb1.delete(8, 13);
System.out.println("sb1 = " + sb1); //abcd1234ABCDworld

System.out.println("------------------------------");
//【改】现在字符串中内容的修改,"ABCD"替换为"abcd"
sb1.replace(8, 12, "abcd");
System.out.println("sb1 = " + sb1); //abcd1234abcdworld

System.out.println("-------------------------------");
//【反转】实现字符串中内容的反转
//sb1.reverse();

//System.out.println("sb1 = " + sb1); //dlrowdcba4321dcba

System.out.println("-------------------------------");

//实现StringBuilder类型向String类型的转换
//String s3 = new String(sb1);
String s3 = sb1.toString();
System.out.println("s3 = " + s3); //abcd1234abcdworld

//实现String类型向StringBuilder类型的转换
StringBuilder sb4 = new StringBuilder(s3);
System.out.println("sb4 = " + sb4); //abcd1234abcdworld
}


}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值