java 如何在StringBuffer中使用replaceAll()方法?

eagi6jfj  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(132)

我需要替换字符串缓冲区中的多个单词。所以我在StringBuffer中寻找一个replaceAll方法。
所以我们在StringBuffer中有它吗?
字符串方法:

str2 = str1.replaceAll(regex, substr);
// (This is String method, I need like this in StringBuffer)
zrfyljdw

zrfyljdw1#

StringBuffer上没有这样的方法。以下内容或许会有所帮助:

StringBuffer str1 = new StringBuffer("whatever");
// to get a String result:
String str2 = str1.toString().replaceAll(regex, substr);
// to get a StringBuffer result:
StringBuffer str3 = new StringBuffer(str2);
9lowa7mx

9lowa7mx2#

这个解决方案稍微优化了一点,因为它不创建新的字符串或字符串缓冲区。假设你想用str2替换str1。

StringBuffer strBuf = new StringBuffer("yourString");
int startIndex = strBuf.indexOf(str1);
while(startIndex != -1){
    strBuf.replace(start, start + str1.length(), str2);
    start = strBuf.indexOf(str1, start + str1.length());
}

使用此方法,您可以找到缓冲区中每次出现str1的索引,并将其逐个替换为str2。方法indexOf(String str,int index),返回从index开始的str的第一次出现的索引。

相关问题