2013-02-12 3 views

ответ

3

Вы пробовали?

str = str.replaceAll("abc", "xyz"); 

Будет работать. "abc" рассматривается как регулярное выражение.

Что также будет работать в

str = str.replace("abc", "xyz"); 

также заменит все вхождения abc с xyz, но "abc" трактуется как буквальное здесь.

+0

+1 для также предлагает заменить вместо опции регулярного выражения :) – PermGenError

1

Вам не нужно регулярное выражение здесь. Вы можете использовать простые String#replace так:

String replaced = str.replace("abc", "xyz"); 
0

Просто используйте методы replaceAll() или replace().

String s2 = s1.replaceAll("abc", "xyz"); 

Javadocs на методе replaceAll.


Различие между replaceAll() и replace()

В java.lang.String, метод replace либо принимает пару Чары или пару CharSequence-х (из которых строка является подклассом, поэтому он будет счастливо возьмите пару строк). Метод replace заменит все вхождения символа char или CharSequence.

С другой стороны, оба аргумента String для replaceFirst и replaceAll являются регулярными выражениями (регулярными выражениями). Использование неправильной функции может привести к тонким ошибкам.

+1

Обратите внимание, что replaceAll() принимает регулярное выражение как первый параметр. в этом случае «abc» действительно является регулярным выражением, а не строковым литералом – PermGenError

+0

В моем ответе утверждается, что ...? – syb0rg

+0

В вашем ответе указано, что un пока вы его не редактировали :) – PermGenError

Смежные вопросы