我需要替换字符串缓冲区中的多个单词。所以我在StringBuffer中寻找一个replaceAll方法。所以我们在StringBuffer中有它吗?字符串方法:
StringBuffer
replaceAll
str2 = str1.replaceAll(regex, substr); // (This is String method, I need like this in StringBuffer)
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);
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的第一次出现的索引。
2条答案
按热度按时间zrfyljdw1#
在
StringBuffer
上没有这样的方法。以下内容或许会有所帮助:9lowa7mx2#
这个解决方案稍微优化了一点,因为它不创建新的字符串或字符串缓冲区。假设你想用str2替换str1。
使用此方法,您可以找到缓冲区中每次出现str1的索引,并将其逐个替换为str2。方法indexOf(String str,int index),返回从index开始的str的第一次出现的索引。