Мне нужно заменить динамическую подстроку с большей строкой, но только один раз (например, первое совпадение). Класс String предоставляет только replace()
, который заменяет ВСЕ экземпляры подстроки; существует метод replaceFirst()
, но вместо регулярной строки он принимает только регулярное выражение. У меня две проблемы с использованием regex:
1) моя подстрока динамична, поэтому может содержать странные символы, которые означают что-то еще в регулярном выражении, и я не хочу иметь дело с символом, ускоряющимся.
2) эта замена происходит очень часто, и я не уверен, повлияет ли использование regex на производительность. Я не могу скомпилировать регулярное выражение заранее, так как само регулярное выражение является динамическим!
Мне, должно быть, что-то не хватает, потому что это кажется мне очень простой... Есть ли метод replaceFirst, который принимает правильную строку где-то еще в java-franework?