删除字符串中的反斜杠

时间:2016-11-14 12:44:53

标签: java jsp servlets

在我的jsp页面中,我有一个包含多个选择的dropdown列表,我使用Strings将这些值存储在getParamterValues()数组中,然后我正在转换将数组转换为具有以下格式的String:('x','y','z')。因此,它可以与IN的{​​{1}}运算符一起使用。

但问题是在SQL server转换为array之后,每个元素都被反斜杠包围。像这样:String

我使用(\'X\',\'Z\',\'Y\')在另一个String.replaceAll("\\\\", "");中工作正常。我不确定为什么它不适用于我的Java application解决方案(Web应用程序)。

这是我的代码:

servlet

我知道String[] Names = request.getParameterValues("Name"); String Name = "("; for (int i = 0; i < Names.length; i++) { Name += "'".concat(Names[i]).concat("'") + ','; } Name = Name.concat(")"); Name = Name.replace(",)", ")"); Name = Name.replaceAll("\\\\", ""); 会删除反斜杠,但我不知道为什么它不能在servlet中工作?

Name = Name.replaceAll("\\\\", "");列表中的值是否存在问题?

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容:

"\\\\"

replace()方法替换了子字符串的每个实例,因此您不必使用',除非您想要删除双斜杠和留下单一斜线。

如果问题仍然存在,那么可能有两个原因。

  1. 调试器将\'表示为\,因此将查询发送到服务器时应该没有问题。
  2. int test = output.charAt(output.length() - 3);实际上不是斜杠或反斜杠,而是另一个看起来像反斜杠的字符。您可以使用float找到它是哪个字符,然后使用调试器检查测试变量的值。