62,628
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
import java.io.*;
public class FileMatcher {
public File[] filesHere = (new java.io.File(".")).listFiles();
public File[] filesEnding(String query) {
List<File> list = new ArrayList<>();
for (File file: filesHere)
if (file.getName().endsWith(query))
list.add(file);
File[] fileArray = new File[list.size()];
for(int i = 0; i < list.size(); i++) {
fileArray[i] = list.get(i);
}
return fileArray;
}
public File[] filesContaining(String query) {
List<File> list = new ArrayList<>();
for (File file: filesHere)
if (file.getName().contains(query))
list.add(file);
File[] fileArray = new File[list.size()];
for(int i = 0; i < list.size(); i++) {
fileArray[i] = list.get(i);
}
return fileArray;
}
public File[] filesRegex(String query) {
List<File> list = new ArrayList<>();
for (File file: filesHere)
if (file.getName().matches(query))
list.add(file);
File[] fileArray = new File[list.size()];
for(int i = 0; i < list.size(); i++) {
fileArray[i] = list.get(i);
}
return fileArray;
}
public File[] filesHere = (new java.io.File(".")).listFiles();
interface Apply {
public boolean apply(String filename, String query);
}
public File[] filter(String query, Apply a) {
List<File> list = new ArrayList<>();
for (File file : filesHere)
if (a.apply(file.getName(), query))
list.add(file);
File[] fileArray = new File[list.size()];
for (int i = 0; i < list.size(); i++) {
fileArray[i] = list.get(i);
}
return fileArray;
}
public File[] filesEnding(String query) {
return filter(query, new Apply() {
public boolean apply(String filename, String query) {
return filename.endsWith(query);
}
});
}
public File[] filesContaining(String query) {
return filter(query, new Apply() {
public boolean apply(String filename, String query) {
return filename.contains(query);
}
});
}
public File[] filesRegex(String query) {
return filter(query, new Apply() {
public boolean apply(String filename, String query) {
return filename.matches(query);
}
});
}