【问题标题】:How to replace special character and its next string with one string如何用一个字符串替换特殊字符及其下一个字符串
【发布时间】:2012-02-14 01:48:00
【问题描述】:

如何在动态中将特殊字符 $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;"

【问题讨论】:

标签: java string replace


【解决方案1】:

String.replace()

String myString = "...";
myString = myStrign
         .replace("$owner", "hr")
         .replace("$table_name", "hr")
         .replace("$constraint_name", "blah");

【讨论】:

    【解决方案2】:

    不确定你想要什么,但是:

    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(不支持正则表达式)

    replaceAll() 方法的作用相同,但需要正则表达式的支持。

    如果需要,请更准确地编辑您的问题。

    【讨论】:

      【解决方案3】:

      String 上的 replaceAll 方法应该可以解决问题。首先将所有键值对存储在一个 Map 中,然后执行以下操作:

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

      应该直接实施。

      【讨论】:

        【解决方案4】:

        如果要替换所有匹配项,请使用replaceAll() 方法,并且需要转义美元等特殊字符,因为replaceAll() 将正则表达式作为第一个参数,如果您编写"$owner",则意味着您的字符串必须以"owner"开头。

        myString.replaceAll("\\$owner", "hr")
        .replaceAll("\\$table_name", "hr")
        .replaceAll("\\$constraint_name", "scma_constraint" );
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-03
          • 2011-05-18
          • 1970-01-01
          • 2019-05-14
          • 1970-01-01
          相关资源
          最近更新 更多