-1

こんにちは、セットインデックスで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);
}
}
4

3 に答える 3