私のJavaコードでは、文字列入力に上記の特殊文字のいずれかが含まれている場合、その前に。を付ける必要があり\
ます。
特殊な文字セットは{+, -, &&, ||, !, (, ), {, },[, ], ^, "", ~, *, ?, :, \}
です。使用してみinputString.replaceAll(old,new)
ましたが、驚いたことに、「old」と「new」に適切な値を指定していても、機能しませんでした。
特別な文字を文字列配列に入れ、forループで繰り返し、文字列に存在するかどうかを確認しました(存在する場合)input.replaceAll(":","\\:")
。しかし、それは私に意図した出力を与えていません。助けてください。
String[] arr = { "+", "-", "&&", "||", "!", "(", ")", "{", "}",
"[", "]", "^", "\"", "~", "*", "?", ":", "\\", "AND", "OR" };
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]>>>>>>>>>>>>>>>" + arr[i]);
System.out.println(search.contains((String) arr[i])
+ "---------->" + arr[i]);
if (search.contains((String) arr[i])) {
System.out.println("..index..."+search.indexOf((String) arr[i]));
String oldString = (String) arr[i];
System.out.println("check if it has old string"
+ search.contains(oldString));
String newString = new String("\\" + arr[i]);
System.out
.println("About to replace special chars....with..."
+ newString);
search = search.replaceAll(oldString, newString);
String newSearch = new String(search.replaceAll(arr[i],
newString));
System.out
.println("Search String after replaceAll is ------------->: "
+ newSearch);
System.out.println("--------------"
+ search.replaceAll(arr[i], newString)
+ "---------------" + search);
}
}