Замените специальный символ на специальный символ в начале Java
В моем Java-коде, если в строковом вводе есть какие-либо из упомянутых специальных символов, ему должно предшествовать\\
Специальный набор символов{+, -, &&, ||, !, (, ), {, },[, ], ^, "", ~, *, ?, :, \}
, Я пытался с помощьюString.replaceAll(old,new)
но, к моему удивлению, это не работает, хотя я даю правильные значения длястарый» а также 'новый.
if old=":",new="\:"
Я поместил специальные символы в массив String, повторил его в цикле for, проверил, присутствует ли он в строке, если да,input.replaceAll(":","\\:")
, Но это не дает мне предполагаемый результат. Пожалуйста помоги
String[] arr = { "+", "-", "&&", "||", "!", "(", ")", "{", "}",
"[", "]", "^", "\"", "~", "*", "?", ":", "\\", "AND", "OR" };
for (int i = 0; i < arr.length; i++) {
//'search' is my input string
if (search.contains((String) arr[i])) {
String oldString = (String) arr[i];
String newString = new String("\\" + arr[i]);
search = search.replaceAll(oldString, newString);
String newSearch = new String(search.replaceAll(arr[i],
newString));
}
}