Java中StringBuffer常用方法

本文详细介绍了Java中的StringBuffer类,包括其初始化、追加、插入、查找、子字符串、获取字符、删除、替换以及在多线程环境下的使用。同时探讨了如何遍历StringBuffer,虽然没有内置迭代器,但可通过其他方式实现。
摘要由CSDN通过智能技术生成

Java中的StringBuffer类是可变字符序列,它提供了许多方法来执行字符串操作,如追加、插入、替换和删除等,而不会像String类那样每次修改都会创建新的对象。以下是StringBuffer类的一些常用方法,并给出相应的代码运行示例:

1.初始化和追加(append)

// 初始化一个 StringBuffer 对象
StringBuffer sb = new StringBuffer();

// 追加字符串
sb.append("Hello ");
sb.append("World");

// 输出结果: "Hello World"
System.out.println(sb.toString());

 2.插入(insert)

sb.insert(6, "beautiful ");  // 在索引6处插入"beautiful "

// 输出结果: "Hello beautiful World"
System.out.println(sb.toString());

3.查找(indexOf 和 lastIndexOf)

int firstIndex = sb.indexOf("World");
int lastIndex = sb.lastIndexOf("World");

System.out.println("First occurrence of 'World': " + firstIndex);
System.out.println("Last occurrence of 'World': " + lastIndex);

4.子字符串(substring)

String subStr = sb.substring(7, 18);  // 截取从索引7到17的子串

// 输出结果: "beautiful W"
System.out.println(subStr);

5.获取指定位置字符(charAt

char c = sb.charAt(19);

// 输出结果: 'o'
System.out.println(c);

6. 删除(delete)

sb.delete(0, 5);  // 删除从索引0开始到索引4(不包括)的子串

// 输出结果: "beautiful World"
System.out.println(sb.toString());

 7.替换(replace)

sb.replace(0, sb.length(), "Greetings, ");

// 输出结果: "Greetings, beautiful World"
System.out.println(sb.toString());

8.反转字符串(reverse)

sb.reverse();

// 输出结果: "dlroW ,olleGtueb erauqilteb"
System.out.println(sb.toString());

注意,尽管在多线程环境下,StringBuffer是线程安全的,但在单线程环境下,对于性能要求较高的情况,可以使用非线程安全但速度更快的StringBuilder类代替。

 

StringBuffer 类本身并不直接提供用于遍历字符串的内置迭代器或forEach循环方法,因为它本质上是一个可变字符序列容器,而不是集合或数组。然而,由于它继承自 AbstractStringBuilder,你可以通过调用 charAt(int index) 方法配合一个传统的 for 循环来遍历其包含的字符:

9.遍历

StringBuffer sb = new StringBuffer("Hello, World!");
for (int i = 0; i < sb.length(); i++) {
    char c = sb.charAt(i);
    System.out.println(c);
}

这段代码会依次输出 StringBuffer 中每个字符。

如果你想使用更现代的 Java 遍历方式(如Java 5引入的增强型for循环),则需要先将其转换为字符数组或列表:

// 转换为字符数组并遍历
char[] chars = sb.toString().toCharArray();
for (char c : chars) {
    System.out.println(c);
}

// 或者转换为List<Character>并遍历
List<Character> charList = new ArrayList<>();
for (char c : sb.toString().toCharArray()) {
    charList.add(c);
}
for (Character c : charList) {
    System.out.println(c);
}

尽管如此,这些做法其实都是间接实现遍历,并非 StringBuffer 类自身提供的专门用于遍历的方法。在实际应用中,根据需求选择合适的遍历方式即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值