我在看一些jdk代码。我找到了这些角色。有人可以向我解释这些是什么意思。这些特殊字符在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();
}
从上面的代码示例中,我能弄清楚发生了什么作为方法找到的\的出现,并把它们转换成\ E和\ Q值。有人可以解释为什么是这样。
有关此方法的更多方面,我一直在寻找进入Pattern.quote()方法从JDK 1.6
出现此代码为[从Java源解除直(http://www.docjar.com/html/api/java /util/regex/Pattern.java.html)('Pattern.java',行1276..1293)。 – dasblinkenlight 2012-08-13 03:12:22
是的,它来自jdk来源Pattern.java – JourneyMan 2013-03-22 21:25:38