gpt4 book ai didi

java - 使用正则表达式显示目录列表

转载 作者:行者123 更新时间:2023-11-30 08:53:09 25 4
gpt4 key购买 nike

这是“Thinking in Java”中的一段代码:

import java.io.*;
import java.util.*;
import java.util.regex.*;

public class DirList {
public static void main(String[] args){
File path = new File(".");
String[] list;
if(args.length == 0){
list = path.list();
}
else{
//System.out.println(args[0]);
list = path.list(new DirFilter(args[0]));

}

Arrays.sort(list, new AlphabeticComparator());
System.out.println(list.length);
for(int i = 0; i < list.length; i++){
System.out.println(list[i]);
}
}
}

class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex){
pattern = Pattern.compile(regex);
//System.out.println(pattern);

}
public boolean accept(File dir, String name) {
// Strip path information, search for regex:
return pattern.matcher(new File(name).getName()).matches();

}
} ///:~

理想情况下,它应该列出当前目录中的所有 .java 文件,但它没有。据我观察,如果我将 C.*.java 作为命令行参数传递,则数组“列表”根本不包含任何元素。我没有在这里包含 AlphabeticComaparator 类;它所做的只是按字母顺序对文件进行排序。

我对文件 I/O 和正则表达式都不熟悉;非常感谢我能得到的任何帮助。

最佳答案

在命令行中,这些中的任何一个都可以用于列出所有 .java 文件:

java DirList .*\\.java
java DirList '.*\.java'

如果您没有任何以 C 开头的 java 文件名,则 C.*.java 将是空的。

关于java - 使用正则表达式显示目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29877584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com