Tôi đã xem xét một số mã jdk. Tôi tìm thấy những nhân vật này. Ai đó có thể giải thích cho tôi những gì có ý nghĩa.Các ký tự đặc biệt này có ý nghĩa gì trong Java?
public static String quote(String s) {
int slashEIndex = s.indexOf("\\E"); // What does this mean. Is this a special char in java. if so what does this do.
if (slashEIndex == -1)
return "\\Q" + s + "\\E";
StringBuilder sb = new StringBuilder(s.length() * 2);
sb.append("\\Q");
slashEIndex = 0;
int current = 0;
while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
sb.append(s.substring(current, slashEIndex));
current = slashEIndex + 2;
sb.append("\\E\\\\E\\Q");
}
sb.append(s.substring(current, s.length()));
sb.append("\\E");
return sb.toString();
}
Từ ví dụ mã trên tôi đã có thể tìm ra những gì đang xảy ra như trong phương pháp tìm lần xuất hiện của \ và chuyển đổi chúng sang \ E và \ Q. Ai đó có thể giải thích lý do tại sao vậy.
Đối với bối cảnh thêm về phương pháp này, tôi đã nhìn vào phương pháp Pattern.quote() từ jdk 1.6
Mã này dường như [cất thẳng từ các nguồn Java] (http://www.docjar.com/html/api/java /util/regex/Pattern.java.html) ('Pattern.java', dòng 1276..1293). – dasblinkenlight
Có từ nguồn jdk Pattern.java – JourneyMan