Fileaccept类定义体java
由于Filename Filter是一个接口,accept方法并没有被实现,所以你需要定义一个类实现这个接口,从而实现你自己想要的accept方法,将这个类的实例传递给list方法。
关于accept方法的实现我们等会再说,我们再来看一下list(Filename Filter filter)方法是如何使用这个accept方法的,File类中的list(Filename Filter filter)方法源代码如下:
Public String[]list(Filename Filter filter){
String names[]=list();
if((names==null)||(filter==null)){
return names;
}
List<String>v=new Array List<>();
for(inti=0;i<names. length ;i++){
if(filter. accept(this ,names[i])){
v. add(names[i]);
}
Return v. to Array(new String[v. size()]);
}静秋
可见中老年眼睛模糊怎么办list方法认为只要list()中的文件名names[i]使accept方法返回true,那么就将这个文件名放入返回的数组之中。
现在,假如我们想在当前目录下找到后缀为.java的文件,那么我们就可以用下面的代码来实现:
Import java .io. File;
importjava.io. File name Filter;
import java. util. Arrays;
import java. util .regex. Pattern;
public class Dir list{
public static void main(final String[] args){
//TODO Auto-generated methods tub
File path=new File(".");
String[]list=null;
if(args. length==0)
list=path. list();
el
list=path. list(new Filename Filter(){
//编译正则表达式
Private Pattern pattern=Pattern. compile (args[0]);
@Override
乡偏旁Public Boolean accept(Filedir,Stringname){
//name整个字符串是否匹配正则表达式
说好普通话手抄报
Return pattern. matcher(name).matches();
}
});
Arrays. sort(list, String. CASE_INSENSITIVE_ORDER);
减压瑜伽for(Strings: list)晴的词语
System. out. Print ln(s);
}
电影与狼共舞注意代码中的采用匿名内部类实现Filename Filter接口。由于传给匿名内部类的参数必须是final的,所以main函数的参数为final。正能量句子励志短句子