【发布时间】:2013-10-26 13:26:31
【问题描述】:
您好,我需要能够用设置索引处的字符串替换一个字符。
例子:
"hello ? would you like a ? from ?"
这是我想使用的方法:
query.bindValue(0,"Mr Boo");
query.bindValue(1,"cake");
query.bindValue(2,"Mr Foo");
我想要的输出:
"hello Mr Boo would you like a cake from Mr Foo"
我需要把它按任何顺序排列,结果都是一样的:
query.bindValue(2,"Mr Foo");
query.bindValue(0,"Mr Boo");
query.bindValue(1,"cake");
回答:
public class DBQuery {
private String querystr;
Map<Integer,String> map = new HashMap<>();
public void prepare(String str){
this.querystr = str;
}
public void bindValue(int num, String value){
map.put(num, value);
}
public void execute(){
java.util.List<Integer> keys = new ArrayList<>(map.keySet());
Collections.sort(keys);
for(Integer key : keys){
querystr = querystr.replaceFirst("\\?", map.get(key));
}
System.out.println(querystr);
}
}
【问题讨论】:
-
是用于sql查询吗?!在这种情况下,您可以使用
PreparedStatement。 -
你试过了吗?
-
试着改变你的问题,问你真正想要什么。避免XY problem
-
我正在为自定义数据库系统构建自己的查询机制,所以没有使用 mysql,因此preparedstatement 不符合我的需求
-
请不要将答案放在问题中。您可以添加自己的答案,也可以接受可以解决您问题的现有答案。