使用StringBuilder替换所有出现的String?
我错过了什么,或者StringBuilder是否缺少与普通String类相同的“将所有出现的字符串A替换为字符串B”的函数? StringBuilder替换功能并不完全相同。 有没有任何方法可以更有效地使用普通的String类生成多个字符串?
garsh0p asked 2019-06-19T10:55:12Z
13个解决方案
69 votes
好吧,你可以写一个循环:
public static void replaceAll(StringBuilder builder, String from, String to)
int index = builder.indexOf(from);
while (index != -1)
builder.replace(index, index + from.length(), to);
index += to.length(); // Move to the end of the replacement
index = builder.indexOf(from, index);
请注意,在某些情况下,使用lastIndexOf可能会更快,从后面工作。 我怀疑如果你用一个短字符串替换长字符串就是这种情况 - 所以当你开始时,任何替换都要少复制。 无论如何,这应该给你一个起点。
Jon Skeet answered 2019-06-19T10:55:33Z
33 votes
你可以使用Pattern / Matcher
将此实例的子字符串中所有指定字符的匹配项
替换
为其他指定字符。 命名空间:System.Text 程序集:mscorlib(在 mscorlib.dll 中) 语法 C# public
StringBuilder
Replace
( char oldChar, char newChar, int startIndex, int count ) 参数 oldChar 要
替换
的字符。 newChar
替换
oldChar 的字符。 startIndex 此实例中子字符串开始的位置。 count 子字符串的长度。 返回值 对此实例的引用,其中从 startIn
* @return
static
StringBuilder
replace
(
StringBuilder
sb,
String
oldStr,
String
newStr){
return sb.
replace
(sb.indexOf(oldStr), sb.indexOf(oldStr) + oldStr.len.
StringBuilder
类的
replace
()方法 (
StringBuilder
Class
replace
() method)
replace
() method is available in
java
.lang package.
replace
()方法在
java
.lang包中可用。
replace
() method is used to
replace
s the set of charac...
//
StringBuilder
//
String
类是 final,无法被继承的;所以
StringBuilder
并不是继承自
String
类;// 而
String
内部维护的object[]数组也是final,无法被 修改//
String
是无法被修改的,而平时对
String
的修改,其实是新建了一个
String
对象;//如果需要频繁修改字符串的内容,建议
使用
StringBuilder
//
String
...
Java
StringBuilder
replace
()方法
java
.lang.
StringBuilder
.
replace
()方法按照这个顺序,在指定的字符串的子字符串
替换
字符。子串开始在指定start的 索引,并延伸到该字符 end - 1,或如果序列的末端不存在这样的字符。1 语法public
StringBuilder
replace
(int start, int end,
String
...
stringbuilder
一.字符串基本操作1.indexof():检索字符串位置##返回“是”字所在的下标
String
str = “这是个字符串”;int index = str.indexOf(“是”);##从下标为 2 的字符开始向后检索(包括下标2)index = str.indexOf(“是”,2);2.lastIndexOf():检索最后一次
出现
的位置##返回 “是”字,字符串最后一...
String
类
主要有三种:
(1)
replace
(char oldChar, char newChar):将所有与oldChar相同的字符
替换
为newChar,返回新的字符串,原字符串不改变。
(2)
replace
All(
String
regex,
String
replace
ment) :将所有与regex相同的字符串
替换
为
replace
ment,返回新的字符串,原字符串不改变。
(3)
replace
First(
String
regex,
String
replace
ment):将第一个与re..
String
对象是不可改变的。每次
使用
System.
String
类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的
String
对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以
使用
System.Text.
StringBuilder
类。例如,当在一个循环中将许多字符串连接在一起时,
使用
StringBuilder
类可以提升性能。
通过用一个重载的构造函数方法初始化变量,可以创建
String
Build
String
中的
replace
(char oldchar,char newchar) 方法意思将这个字符串中的所有的 oldchar 全部换成 newchar , 并返回一个新的字符串.
String
str = "CSDN博客";
String
str1 = str.
replace
("博客", "牛批");
//str1为 "CSDN牛批"
public static final
String
URL = "http://xx.xxx.com/update?id=ID&na
大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。好吧,不能说这是完全错误的。优化应用程序以获得最佳性能不是一件容易的事情。但是,这并不意味着如果你不具备这些知识,就不能做任何事情。这里有11个易于遵循的建议和最佳实践可以帮助你创建一个性能良好的应用程序。大部分建议是针对
Java
的。但也有若干建议是与语言无关的,可以应用于所有应用程序和编程语言。在讨论专门针...
当对字符串进行修改的时候,需要
使用
String
Buffer和
StringBuilder
类。
和
String
类不同的是,
String
Buffer 和
StringBuilder
类的对象能够被多次的修改,并且不产生新的未
使用
对象。
StringBuilder
与
String
Buffer最大的不同:
StringBuilder
的方法不是线程安全的。则在要求线程安全情况下,必须
使用
String
Buffer类。
StringBuilder
相较于
String
Buffer具有速度优势。
public cla