StringBuilder vs. String considering replace StringBuilder和String之间的比较,考虑到替换操作。

9 浏览
0 Comments

StringBuilder vs. String considering replace StringBuilder和String之间的比较,考虑到替换操作。

在连接大量字符串时,我被建议使用StringBuilder,如下所示:

StringBuilder someString = new StringBuilder("abc");
someString.append("def");
someString.append("123");
someString.append("moreStuff");

而不是使用如下所示的方法:

String someString = "abc";
someString = someString + "def";
someString = someString + "123";
someString = someString + "moreStuff";

这样会创建许多字符串,而不是一个字符串。

现在,我需要做类似的事情,但是不使用连接,而是使用String的replace方法,如下所示:

String someString = SOME_LARGE_STRING_CONSTANT;
someString = someString.replace("$VARIABLE1", "abc");
someString = someString.replace("$VARIABLE2", "def");
someString = someString.replace("$VARIABLE3", "123");
someString = someString.replace("$VARIABLE4", "moreStuff");

要使用StringBuilder完成相同的操作,我必须这样做,仅针对一个replace操作:

someString.replace(someString.indexOf("$VARIABLE1"), someString.indexOf("$VARIABLE1")+10, "abc");

所以我的问题是:“是使用String.replace并创建许多额外的字符串更好,还是仍然使用StringBuilder并有许多冗长的行,如上面的行?”

0