Java奇怪的问题改变字符串

时间:2018-03-02 10:24:44

标签: java

我已经尝试过搜索这个,但后来我不知道该如何描述它。

我有一个方法可以将一些来自hashmap的数据格式化为mySQL表:

private String valuesList() {
    String valuesList = "";
    HashMap<String,String> data = getData();
    for(Map.Entry<String, String> entry : data.entrySet()) {
        String value=entry.getValue();
        valuesList+="'"+value+"',";
    }
    valuesList = valuesList.substring(0, valuesList.length() - 1);
    return valuesList;
}

大多数时候工作正常,但在某些情况下,其中一个值有一个撇号,这会产生如下输出:

'4577314','18-02-2017','null','4566974','null','Overseas Domestic Workers' Rights Bill','1124','null'

请注意“海外家庭工人”#39;权利法案&#39;最后一点。我认为通过改变

很容易解决
valuesList+="'"+entry.getValue()+"',";

valuesList+="'"+entry.getValue().replace("'","")+"',";

但该方法现在在该行抛出空指针异常。事实上,.trim()等字符串的任何类型的更改都会相同,抛出null

我现在完全难过了

1 个答案:

答案 0 :(得分:-1)

你可以像这样从

中删除引号
value = value.replaceAll("'","''");