как насчет этого:
newMessage.replace("'", "\\'")
Или я неправильно понимаю ваше требование?
А по поводу обсуждений в комментариях: да, оба replace()
и replaceAll()
использовать регулярные выражения внутренне использовать скомпилированные шаблоны (но replace()
использует флаг Pattern.LITERAL
), интерпретируя шаблон как буквальное значение, тогда как replaceAll()
(и replaceFirst()
) оба используютРегулярные выражения.Однако скомпилированные шаблоны абсолютно идентичны (в данном случае).Попробуйте сами:
Pattern literal = Pattern.compile("'",Pattern.LITERAL);
Pattern regular = Pattern.compile("'");
Добавьте точку останова после этих назначений и более внимательно посмотрите на эти два скомпилированных шаблона.Вы обнаружите, что все значения их полей идентичны, поэтому в этом случае, по крайней мере, нет, это не влияет на производительность.