替换字符串中特定索引的字符串?

San*_*nju -2 java

我们如何在Java中替换现有字符串中的特定字符串?

例:

String param = "aa,bb,cc";
String str = 
  "select column_val from table_name where a = '?' and b = '?' and c = '?'";
Run Code Online (Sandbox Code Playgroud)

现在我想用它的位置替换params ...

String newStr = 
  "select column_val from table_name where a = 'aa' and b = 'bb' and c = 'cc'";
Run Code Online (Sandbox Code Playgroud)

我们应该怎么做?stringutil中是否存在任何现有方法,或者有任何方法可以执行此操作吗?

NPE*_*NPE 6

处理这个问题的正确方法是使用 PreparedStatement.它不仅可以替代你,还可以防范SQL注入攻击.

是的,我只是在这里演示选择查询,但它不是选择查询,它是简单的字符串

在这种情况下,有一种简单的方法:

 String param = "aa,bb,cc";
 String str = "select column_val from table_name where a = '?' and b = '?' and c = '?'";
 String fmt = str.replaceAll("[?]", "%s");
 String newStr = String.format(fmt, (Object[])param.split(","));
Run Code Online (Sandbox Code Playgroud)

确保您输入的模式没有任何杂散问号或百分比字符.