Есть ли способ использовать регулярное выражение, содержащее переменные, для замены символов в строке

У меня уже есть код s.replaceFirst("\\.", "");. Это заменяет точку в заданной строке s. Но моя проблема в том, что он сможет изменить то, что будет заменено. Например, теперь программа должна заменить вопросительный знак. Я попытался сделать это следующим образом:

String characterToReplace = "?";
s = s.replaceFirst("\\" + characterToReplace, "");

Но это только создает ошибки.

Какую ошибку он создает?

BlackPearl 18.04.2019 19:33

Ваш код отлично сработал для меня. С какой именно проблемой вы столкнулись?

Nicholas Kurian 18.04.2019 20:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте использовать Pattern.quote, обсуждаемый здесь:

import java.util.regex.Pattern;

// ...

String characterToReplace = "?";
s = s.replaceFirst(Pattern.quote(characterToReplace), "");

Другие вопросы по теме