在我的 java 代码中,如果字符串输入有任何提到的特殊字符,则应该在前面加上\\
特殊字符集是{+, -, &&, ||, !, (, ), {, },[, ], ^, "", ~, *, ?, :, \}
. 我尝试使用String.replaceAll(old,new)
但令我惊讶的是它不起作用,即使我为“旧”和“新”提供了正确的值。
if old=":",new="\:"
我将特殊字符放在一个字符串数组中,在 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));
}
}