java 查找并替换 %

java find and replace %

在 java 1.8.0 中 我正在尝试替换 %,但它不匹配

  String str = "%28Sample text%29";

  str.replaceAll("%29", "\)");

  str.replaceAll("%28", "\(");
  System.out.println("Replaced string is " + str);

我已经尝试了所有这些Replace symbol "%" with word "Percent" 对我来说没有任何效果。提前致谢。

它正在工作。 您需要重新分配给 str

  str = str.replaceAll("%29", "\)");

  str = str.replaceAll("%28", "\(");

正确。

但是您可以简单地通过使用 URLDecoder 解码那些 unicode 值来做到这一点。

String s = "%28Hello World!%29";
s = URLDecoder.decode(s, "UTF-8");
System.out.println(s);

将输出:

(Hello World!)

问题是你误解了replaceall的用法。它用于基于正则表达式的替换。你需要使用的是像这样的正常 replace 方法:

String str = "%28Sample text%29";

str=str.replace("%29", "\)"). replace("%28", "\(");
System.out.println("Replaced string is " + str);