StringBuilder vs. 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完成同样的事情,我必须这样做,只是为了一个替换:
someString.replace(someString.indexOf("$VARIABLE1"), someString.indexOf("$VARIABLE1")+10, "abc");
所以我的问题是:“是使用String.replace并创建大量额外的字符串更好,还是仍然使用StringBuilder,并且有很多长长的行,如上面的那个?