java正则表达式查找文件
首先:
驱使我去做这件事的原因,纯属是因为在大学收作业的时候总是会有一部分人不按时上交文件,反正我是没有耐心去寻,索性写段程序一劳永逸!!
需要:
- 一份班级名单
- 文件路径
String []model= {
"罗伟洲","陈巧","吴红玉","杨芸逍","向纤慧","万君","黄金","孙小平","张露露","刘承鑫","刘帆","龙云锋",
"黄婕","冯浪","李富林","杨艾","黄丹","杨璐华","谭钦","李帅杰","潘豪","刘森彪","陈翔宇","胡峰","吴刚",
"叶智豪","李光健","李俊达","刘俊濠","陈康林","张林","彭渝惠","毛思雅","邹家江","穆小丽","文于键","蔡庆",
"毛睿","孙彩云","宋书杰","谭垚","刘其亮","李经纬","蒋贵成","郑光怀","成斌","卢柯","徐江鸿"};
//班级名单
File file=new File("D:\\软件307大作业")
//要扫描的文件夹路径;
File name[]=file.listFiles();
//将该目录下的所有子文件存到数组里
List<String> list=new ArrayList<String>();
for (int i = 0; i < name.length; i++) {
File names=name[i];
if (names.isDirectory()) {//判断是否为文件夹
list.add( names.getName());
}
}
int size=list.size();
String n[]=new String[size];
for (int j = 0; j < list.size(); j++) {
n[j]=(String)list.get(j);
}
//遍历文件名存到数组里
for (int i = 0; i < n.length; i++) {
for (int j = 0; j < model.length; j++) {
if (Pattern.matches(".*"+model[j]+".*", n[i])) {
//正则表达式:判断文件夹的名称是否包含名单上的姓名
model[j]=" ";
//交了文件的同学清除姓名,留下没有交的同学姓名
}
}
}
for (int i = 0; i < model.length; i++) {
System.out.print(model[i]);
}
//打印文件夹里没有匹配的同学姓名
注意:
其中Pattern.matches(a,b)的用法:
就是判断a,b两个字符串是否相匹配,如果匹配,返回 true