Как заменить специальный символ и его следующую строку одной строкой - PullRequest
2 голосов
/ 19 января 2012

Как заменить динамический специальный символ $ owner на «hr» и $ table_name на «hr» и $ constraint_name на «scma_constraint» Изменение

"alter table  $owner.$table_name ENABLE constraint $constraint_name;"

в

"alter table  hr.hr ENABLE constraint scma_constraint;"

Ответы [ 4 ]

1 голос
/ 19 января 2012

Не уверен, что вы хотите, но:

String str = "alter table $owner.$table_name ENABLE constraint $constraint_name;"
str = str.replace("$owner", "hr")
    .replace("$table_name", "hr")
    .replace("$constraint_name", "scma_constraint");

Javadoc доступен здесь .

Метод replace () возвращает новую строку, полученную в результате заменывсе вхождения oldChar в этой строке с помощью newChar (без поддержки regexp)

Метод replaceAll () делает то же самое, но с поддержкой regexp.

При необходимости отредактируйте свой вопросс большей точностью на то, что вы хотите.

1 голос
/ 19 января 2012

String.replace()

String myString = "...";
myString = myStrign
         .replace("$owner", "hr")
         .replace("$table_name", "hr")
         .replace("$constraint_name", "blah");
0 голосов
/ 19 января 2012

Метод replaceAll в String должен помочь.Сначала сохраните все пары ключ-значение на карте, а затем сделайте что-то следующим образом:

for each entry in the map
    myString.replaceAll(entry.key, entry.value)

Должно быть очень простым для реализации.

0 голосов
/ 19 января 2012

Если вы хотите заменить все совпадения, тогда используйте метод replaceAll(), и вам нужно экранировать специальные символы, такие как доллар, потому что replaceAll() получает регулярное выражение в качестве первого параметра, и если вы напишите "$owner", это будет означать, что ваша строка должна начать с "owner".

myString.replaceAll("\\$owner", "hr")
.replaceAll("\\$table_name", "hr")
.replaceAll("\\$constraint_name", "scma_constraint" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...