从 OCP 考试的“Kathy Sierra Bert Bates”书中我找到了以下代码
public class FileTest {
public static void matches(Path path, String glob){
PathMatcher matcher = FileSystems.getDefault().getPathMatcher(glob);
System.out.println(matcher.matches(path));
}
public static void main(String[] args) throws IOException {
Path path = Paths.get("/com/java/One.java");
matches(path, "glob:*.java");
matches(path, "glob:**/*.java");
matches(path, "glob:*");
matches(path, "glob:**");
}
}
Output:
false
true
false
true
我无法清楚地理解输出。有没有人给我解释一下。让我知道我的例子什么是跨越目录边界的。
谢谢
洛基
matches(path, "glob:*.java"); // => flase
因为你的路径包含/
它描述了目录层次结构,*.java
与任何文件名匹配.java
扩大
matches(path, "glob:**/*.java"); // => true
because **
匹配任何字符串,包括子路径(例如/com/java/
在你的例子中)
matches(path, "glob:*"); // => false
正如第一个中提到的,因为你有路径分隔符/
matches(path, "glob:**"); // => true
正如第二个中提到的,因为**
匹配任何字符串,包括/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)