Java String to Object变得不必要'\'

时间:2013-08-16 08:26:45

标签: java string character-encoding extra

我正在构建一个MongoDB Java查询,并且在尝试在我的数据库中查找特定值时,由于我{中的一些不需要的'\'个字符,查询得到的查询全部搞砸了。 {1}}。 这就是我正在做的事情。

我从String获取了一个字符串列表,然后使用这些字符串在另一个集合中执行查找。

mongodb

如果我使用查询执行DBCursor = null; for(String s : list){ BasicDBOject query = = new BasicDBObject("actor.preferredUsername", s); cursor = coll.find(query); //treat the results } ,这就是我得到的:

System.out.println()

注意最后一个字段中的 { "actor.preferredUsername" : "\"NapoleSunset75\""}

现在,出于测试目的,如果我将'\'更改为类似's'的固定字符串,则会成功创建查询,并返回

"xpto"

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我认为,这是由于字符串中的额外引用将存储在您的数据库中。如果是这样的话,你可以使用这个类和它的静态公共方法来验证你的String,然后再存储到你的数据库中:

public class SqlValidator {

private static final String SINGLE_QUOTE    = "\u0027";

    /**
     * It replaces all ' with ''. It should be used in read/write queries.
     * 
     * @param str
     */
    public static String quoteInQuery(String str) {
    if (str == null)
        return null;
    return str.replaceAll(SINGLE_QUOTE, SINGLE_QUOTE + SINGLE_QUOTE);
    }
}