StringBuilder/StringBuffer 满足你对字符串连接需求(用于治疗python懒癌晚期)

本文深入探讨了Java中字符串的高效操作技巧,对比了String、StringBuffer与StringBuilder的使用场景,强调了StringBuilder在非线程安全环境下的性能优势。通过实例演示了如何利用StringBuilder进行大量字符串拼接操作,同时提供了代码示例,展示了如何逐步筛选字符串直至剩下最后一个字符。

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

1.分析:

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder
的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder
类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

2.方法

对字符串添加新字符,可以直接调用StringBuilder:

StringBuffer buf=new StringBuffer(); //StringBuilder用法类似

如果需要转化为字符串继续其他操作,只需String一个str即可:

String str=buf.toString();

3.用法

  • 例题一

把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

代码:

public class Main{
	public static void main(String[] args) {
		StringBuffer buf=new StringBuffer();
		for(int i=0;i<106;i++) {
			buf.append("abcdefghijklmnopqrs");
		}
		while(buf.length()>1) {
			for(int i=buf.length()-1;i>=0;i--) {
				if((i)%2==0) buf.deleteCharAt(i);
			}
		}
		String str=buf.toString();
		System.out.println(str);
	}
}
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值