私の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));
}
}