【发布时间】:2011-09-09 15:19:45
【问题描述】:
我似乎遇到了问题。我有一个查询字符串,其值可以包含单引号。这将破坏查询字符串。所以我试图进行替换以将' 更改为\'。
这是一个示例代码:
"This is' it".replace("'", "\'");
这个输出仍然是:
"This is' it".
它认为我只是在为引号做一个转义字符。
于是我尝试了这两段代码:
"This is' it".replace("'", "\\'"); // \\ for the backslash, and a ' char
"This is' it".replace("'", "\\\'"); // \\ for the backslash, and \' for the ' char
以上两种方法仍然产生相同的输出:
"This is' it"
我似乎只能让这个实际吐出一个斜线:
"This is' it".replace("'", "\\\\'");
结果:
"This is\\' it"
有什么建议吗?我只想用\' 替换'。
看起来应该没那么难。
【问题讨论】:
-
你打错了吗?我看不出最后两个代码sn-ps有什么区别,而后者的结果似乎是你想要的。
-
"我有一个查询字符串" - 你的意思是一个 SQL 查询字符串吗?如果是这样,请使用 PreparedStatements 和参数化查询。这样您就不必自己处理转义这些字符了。
-
我支持 jwodder。你想要的和你得到的似乎是一样的。
标签: java string replace escaping backslash