Вам также нужно экранировать \
в \\
В противном случае любые \
в вашей исходной строке останутся \
и синтаксический анализатор, полагая, что специальный символ (например, "
) должен следовать за \
будет сбит с толку.
Каждому \
или "
символу, который вы вводите в строку литерала Java, должен предшествовать \
.
Вы хотите использовать replace
, а не replaceAll
, поскольку первый имеет дело со строками, а второй - с регулярными выражениями.В вашем случае регулярное выражение будет медленнее и потребует еще больше обратной косой черты.
replace
, которая работает с CharSequence
с, то есть String
с в этом случае существует начиная с Java 1.5 и далее.
myString = myString.replace("\\", "\\\\");
myString = myString.replace("\"", "\\\"");