我正在尝试在Java Servlet中格式化字符串以添加到JDBC SELECT查询中。我需要将%20
替换为%
以适应我的条件条件。
nameQuery.replaceAll("%20", "%");
String query = String.format("SELECT name, imageURL FROM User " +
"WHERE name LIKE \'%%%s%%\' AND userID != %d", nameQuery, userId);
使用此代码,所有%20
仍然不会被替换。对于nameQuery
之类的"Allison%20s"
值,调用nameQuery.replaceAll("%20", "%")
会将其更改为"Allison%20s"
(不变)。即使转义%
也不能解决此问题。如何使replaceAll
转换成%
到%20
?
答案 0 :(得分:1)
似乎您实际上得到的是一个包含%20
的字符串,您想用其他内容替换它。您可以使用replace
nameQuery = nameQuery.replace("%20", "%"); // replace %20 with a %
您还可以使用replaceAll
,但是您似乎没有捕获replaceAll
的返回值;只是调用它而忽略结果。