java中关于StringBuilder类中的函数

这篇博客探讨了Java中的StringBuilder类,它基于动态可扩容的数组实现。通过示例代码,详细解释了StringBuilder类的主要函数及其使用,展示了如何进行字符串拼接和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  StringBuild的本质也是一个数组。但是该数组是一个动态可扩容的数组。

  具体详见代码:

public class StringBuildertest {
	/**
	 * StringBuild的本质也是一个数组
	 * 但是该数组是一个动态可扩容的数组
	 * @param args
	 */
	
	public static void main(String[] args) {
		char[] str=new char[]{'q','w','e','r'};
		String st=new String("zxc");
		StringBuilder s1=new StringBuilder();
		/**
		 * 首先是类StringBuilder中的添加字符的函数append
		 */
		/*
		 * append:
		 * 当参数为一个boolean,如果该参数是true,则就将该参数True通过动态可扩容数组,最后返回True字符串
		 */
		s1.append(true);
		System.out.println(s1.toString());//true
		//在True的基础之上在添加一个字符c,则最后输出的字符串是Truec
		s1.append('c');
		System.out.println(s1.toString());//truec
		
		/*
		 * 给append传的参数是一个字符型数组
		 * 该源码是先判断传进来的字符数组中的字符的个数加上原来存在的字符的个数与之前定义的容量作比较,
		 * 如果小于,直接添加;如果大于,需要动态扩容
		 */
		s1.append(str);
		System.out.println(s1.toString());//truecqwer
		
		/*
		 * 参数是一个对象
		 * 源码首先是判断该对象是否为空,然后判断该对象是否属于String,
		 * 最后再判断该对象是否属于abstractStringBuilder
		 * 三种情况都是各自的函数
		 */
		s1.append(st);
		System.out.println(s1.toString());//truecqwerzxc
		
		/*
		 * 参数是一个double
		 */
		s1.append(526.0);
		System.out.println(s1.toString());//truecqwerzxc526.0
		
		/*
		 * 参数为一个字符型数组,还有自己写一个数组的下标,
		 * 最后一个参数为从该数组的下标起,自己所要添加的长度,即字符串的个数
		 */
		s1.append(str, 1, 2);
		System.out.println(s1.toString());//truecqwerzxc526.0we
		
		/*
		 * 三个参数,第一个是对象,第二个是长度的范围
		 * 在这个函数里面,源码也是先判断对象
		 * 注意:长度实质是角标,并包括起始角标,不包括末尾角标
		 */
		s1.append(st, 0, 2);
		System.out.println(s1.toString());//truecqwerzxc526.0wezx
		
		/*
		 * 参数是角标,源码的返回值是一个角标相对应的字符
		 */
		s1.charAt(0);
		System.out.println(s1.charAt(0));//t
		
		/*
		 *该函数是一个无参的函数,源码返回的是该原来的字符串的长度
		 */
		s1.capacity();
		System.out.println(s1.capacity());//34
		
		s1.codePointAt(0);
		System.out.println(s1.codePointAt(0));//116
		
		/*
		 * 源码是先判断该对象是否为空,再判断两个对象是否指向堆中的同一个地址
		 * 再接着判断该对象是否属于该类,再接着对该对象进行强制性转换
		 */
		s1.equals(st);
		System.out.println(s1.equals(st));//false
		
		//删除
		s1.delete(0, 2);
		System.out.println(s1.toString());//uecqwerzxc526.0wezx
		
        //替换
		s1.replace(0, 3, st);
		System.out.println(s1.toString());//zxcqwerzxc526.0wezx
	}
}

每一条输出语句后面的注释就是对应的输出结果。

全部结果展示:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值