如何替换字符串某些部分的符号

时间:2017-05-10 11:52:28

标签: java replace

我有我的SQL脚本

INSERT INTO("TEST1", "TEST2") VALUES("TEST3", "TEST4");

我只需要在TEST1和TEST2中替换双引号。 Out必须看起来像

INSERT INTO('TEST1', 'TEST2') VALUES("TEST3", "TEST4");

有可能吗? 的更新: 怎么做?

2 个答案:

答案 0 :(得分:1)

简单(不考虑角色案例)

  1. 拆分字符串(第一部分==>从插入到值
  2. 替换第一部分
  3. 合并firstPart和剩余部分
  4. 请尝试以下代码:

    String inputQry = "INSERT INTO(\"TEST1\", \"TEST2\") VALUES(\"TEST3\", \"TEST4\");";
    
    Integer indexOfValuesClause = inputQry.indexOf("VALUES"); // index where VALUES start
    String firstPart = inputQry.substring(0,indexOfValuesClause); // first part contains String upto VALUES clause
    firstPart = firstPart.replace("\"","'");
    System.out.println(firstPart+inputQry.substring(indexOfValuesClause));
    

    <强>结果

      

    INSERT INTO(&#39; TEST1&#39;,&#39; TEST2&#39;)价值观(&#34; TEST3&#34;,&#34; TEST4&#34;);

答案 1 :(得分:0)

您可以使用String中的replaceAll方法和适当的正则表达式来实现。以下代码替换了第一个括号内的所有"

String sqlCmd = "INSERT INTO(\"TEST1\", \"TEST2\") VALUES(\"TEST3\", \"TEST4\")";
sqlCmd = sqlCmd.replaceAll("(^[^\\(]*\\(|\\G,\\s*)\"([^\"]+)\"", "$1'$2'"); //result INSERT INTO('TEST1', 'TEST2') VALUES("TEST3", "TEST4")