如何使用“hr”替换特殊字符$ owner,将$ table_name替换为“hr”,将$ constraint_name替换为动态“scma_constraint”。 变化
"alter table $owner.$table_name ENABLE constraint $constraint_name;"
要
"alter table hr.hr ENABLE constraint scma_constraint;"
答案 0 :(得分:1)
String.replace()
String myString = "...";
myString = myStrign
.replace("$owner", "hr")
.replace("$table_name", "hr")
.replace("$constraint_name", "blah");
答案 1 :(得分:1)
不确定你想要的是什么,但是:
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可用here。
replace()方法返回一个新字符串,该字符串是用newChar替换此字符串中所有出现的oldChar(不支持regexp)
replaceAll()方法也是这样,但是在regexp的支持下。
如果需要,请更准确地编辑您的问题。
答案 2 :(得分:0)
如果要替换所有匹配项,请使用replaceAll()
方法,您需要转义特殊字符,例如美元,因为replaceAll()
获取正则表达式作为第一个参数,如果您编写"$owner"
它表示您的字符串必须以"owner"
开头。
myString.replaceAll("\\$owner", "hr")
.replaceAll("\\$table_name", "hr")
.replaceAll("\\$constraint_name", "scma_constraint" );
答案 3 :(得分:0)
String上的replaceAll方法应该可以解决问题。首先将所有键值对存储在Map中,然后执行以下操作:
for each entry in the map
myString.replaceAll(entry.key, entry.value)
应该直截了当地实施。