Вызов replace для замены String в методе replaceAll () - PullRequest
0 голосов
/ 06 сентября 2018

Кажется, что это должно работать, но это не так ... Я пытаюсь вызвать метод replace () для строки замены, переданной методу replaceAll ().

Например, я пытался избавиться от любых запятых в двойных кавычках с помощью этого кода:

String string = "\"Thu, Sep 6, 2018 10:00 AM\"";
System.out.println(string.replaceAll("(\"[^\"]+\")", "$1".replace(",", "")));

И в результате получается та же строка: "Thu, Sep 6, 2018 10:00 AM", когда я надеялся на "Thu Sep 6 2018 10:00 AM"

Я просмотрел документацию для String.replaceAll () и Matcher.replaceAll () и до сих пор не могу понять, почему это не работает. Может ли кто-нибудь помочь мне предпринять?

Позвольте мне подчеркнуть, что мне любопытно узнать, ПОЧЕМУ это не работает - меня не интересуют решения, я уже нашел альтернативу. Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

просто измените место закрывающей скобки, и оно будет работать:

System.out.println(string.replaceAll("(\"[^\"]+\")", "$1").replace(",", ""))
0 голосов
/ 06 сентября 2018

Вы звоните .replace на "$ 1", а не результат replaceAll. Закройте скобку вызова replaceAll и вызовите метод .replace для этого.

попробуй

System.out.println(string.replaceAll("(\"[^\"]+\")", "$1").replace(",", ""))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...