こんにちは、セットインデックスで1文字を文字列に置き換えることができる必要があります。
例:
"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);
}
}