Java将问题替换为\'(撇号/单引号)和\\\\(反斜杠)
||
我似乎有问题。我有一个查询字符串,其值可以包含单引号。这将中断查询字符串。所以我试图做一个替换,将
\'
更改为\\\'
。
这是一个示例代码:
\"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
上面的两个STILL都产生相同的输出:
\"This is\' it\"
我似乎只能得到这实际上吐出一个斜线:
\"This is\' it\".replace(\"\'\", \"\\\\\\\\\'\");
结果是:
\"This is\\\\\' it\"
有什么建议么?我只想用\\\'
代替\'
。
似乎应该没有那么困难。
没有找到相关结果
已邀请:
7 个回复
破弯
)。其次,如果要用反斜杠撇号替换所有的撇号实例,则必须在字符串表达式中使用反斜杠将反斜杠转义。像这样:
编辑: 现在,我知道您可能正在尝试动态构建SQL语句。不要这样做。您的代码将容易受到SQL注入攻击。而是使用
。
扦帽次杏
膛嵌墒缅欠
旅牢斯讲
但是在Java中
会完美地工作。 SP:特殊字符 否则,您可以使用Apache的EscapeUtil。它将解决您的问题。
田损比报
替换我字符串中的单引号。它对我来说很好。
懊毁暗
返回结果字符串。它不会修改stringToEdit,因为在Java中字符串是不可变的。要坚持下去,您应该使用
稼悸