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 类自身提供的专门用于遍历的方法。在实际应用中,根据需求选择合适的遍历方式即可。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JavaStringBuffer是一个可变的字符串类,它提供了许多常用方法,包括: 1. append():将指定的字符串追加到当前字符串的末尾。 2. insert():将指定的字符串插入到当前字符串的指定位置。 3. delete():删除当前字符串指定位置的字符。 4. deleteCharAt():删除当前字符串指定位置的字符。 5. replace():用指定的字符串替换当前字符串指定位置的字符。 6. substring():返回当前字符串指定位置的子字符串。 7. length():返回当前字符串的长度。 8. capacity():返回当前字符串的容量。 9. setLength():设置当前字符串的长度。 10. trimToSize():将当前字符串的容量调整为当前字符串的长度。 以上是Java StringBuffer常用方法,可以根据需要选择使用。 ### 回答2: JavaStringBuffer类是一个常用的字符串操作类,它提供了对字符串进行增删改查等操作的方法,下面就是常用的一些方法: 1. append(String str):将指定的字符串追加到此字符序列。 2. insert(int offset, String str):将指定的字符串插入此字符序列的指定位置。 3. delete(int start, int end):从此字符序列删除指定范围的字符。 4. deleteCharAt(int index):从此字符序列删除指定位置的字符。 5. replace(int start, int end, String str):用指定的字符串替换此字符序列指定范围内的字符。 6. substring(int start):返回一个新的字符串,它是此字符串从指定位置开始到结尾的一个子字符串。 7. substring(int start, int end):返回一个新的字符串,它是此字符串从指定位置开始到指定位置结束的一个子字符串。 8. length():返回此字符序列的长度。 9. charAt(int index):返回指定位置的字符。 10. setCharAt(int index, char ch):将指定位置的字符设置为指定的字符。 11. toString():返回此字符序列的字符串表示形式。 总的来说,StringBuffer类提供了丰富的字符串操作方法,可以方便地进行字符串的拼接、删除、替换等操作。因此,在Java编程StringBuffer类是常用的类之一。 ### 回答3: JavaStringBuffer是一个可变的字符串,使用StringBuffer可以方便地进行字符串的修改和操作。它提供了许多常用方法,下面介绍一些常用方法及其用法: 1. append():向字符串后面追加字符或字符串。例如: StringBuffer sb = new StringBuffer("hello"); sb.append("world"); System.out.println(sb.toString()); 输出结果为:helloworld 2. delete():删除字符串指定位置的字符。例如: StringBuffer sb = new StringBuffer("hello"); sb.delete(1, 3); // 删除从1到3的字符,不包括3 System.out.println(sb.toString()); 输出结果为:hlo 3. insert():在字符串指定位置插入字符或字符串。例如: StringBuffer sb = new StringBuffer("hello"); sb.insert(3, "world"); // 在3的位置插入world System.out.println(sb.toString()); 输出结果为:helworldlo 4. reverse():将字符串反转。例如: StringBuffer sb = new StringBuffer("hello"); sb.reverse(); System.out.println(sb.toString()); 输出结果为:olleh 5. setCharAt():将字符串指定位置的字符替换为指定的字符。例如: StringBuffer sb = new StringBuffer("hello"); sb.setCharAt(1, 'a'); // 将第一个字符替换为a System.out.println(sb.toString()); 输出结果为:hallo 6. toString():将StringBuffer对象转换为字符串。例如: StringBuffer sb = new StringBuffer("hello"); String str = sb.toString(); System.out.println(str); 输出结果为:hello 7. length():返回字符串的长度。例如: StringBuffer sb = new StringBuffer("hello"); int len = sb.length(); System.out.println(len); 输出结果为:5 8. capacity():返回字符串的容量。例如: StringBuffer sb = new StringBuffer("hello"); int cap = sb.capacity(); System.out.println(cap); 输出结果为:21 除了上述常用方法之外,还有一些其他比较有用的方法,例如indexOf()、substring()、replace()等,都可以参考Java API文档进行了解。总的来说,JavaStringBuffer提供了多种灵活的方法,让我们可以方便地对字符串进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值