В Java 1.8.0 я пытаюсь заменить%, но это не соответствует

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

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

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

Я пробовал все это Заменить символ «%» словом «Percent». меня. Заранее спасибо.

1
Chinmaya Hegde 19 Окт 2017 в 10:18

3 ответа

Лучший ответ

Работает. Вам нужно переназначить str

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

  str = str.replaceAll("%28", "\\(");
4
Viet 19 Окт 2017 в 07:21

Проблема в том, что вы неправильно поняли использование replaceall. Это для замены на основе регулярных выражений. Вам нужно использовать обычный replace метод, подобный этому:

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

str=str.replace("%29", "\\)"). replace("%28", "\\(");
System.out.println("Replaced string is " + str);
0
gyurix 19 Окт 2017 в 07:29

Ответ Jerry06 правильный.

Но вы могли бы сделать это просто используя URLDecoder для декодирования этих значений Юникода.

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

Будет выводить:

(Привет мир!)

1
AxelH 19 Окт 2017 в 07:29