Заменить все вхождения подстроки в строке - что более эффективно в Java?

Я знаю два способа замены всех вхождений подстроки в строку.

Способ регулярного выражения (при условии, что «замещаемая подстрока» не включает специальные символы регулярного выражения):

String regex = "substring-to-be-replaced" + "+";
Pattern scriptPattern = Pattern.compile(regex);
Matcher matcher = scriptPattern.matcher(originalstring);
newstring = matcher.replaceAll("replacement-substring");

Способ String.replace ():

newstring = originalstring.replace("substring-to-be-replaced", "replacement-substring");

Какой из двух более эффективен (и почему)?

Есть ли более эффективные способы, чем два описанных выше?

10
задан Regex Rookie 23 March 2011 в 15:26
поделиться