StringBuilder vs. String considering replace StringBuilder和String之间的比较,考虑到替换操作。
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并有许多冗长的行,如上面的行?”