zoukankan      html  css  js  c++  java
  • 使用正则表达式过滤目录中文件名称,File和FilenameFilter的应用

    用DirFilter 实现FilenameFilter,能够通过正则表达式过滤目录中的文件名称;

    也可以用其他方式实现其他的过滤,类似于过滤大小、类型等!

    class DirFilter implements FilenameFilter{
    
     
    
        private Pattern pattern;
    
        public DirFilter(String regex) {
    
            pattern = Pattern.compile(regex);
    
        }
    
        @Override
    
        public boolean accept(File dir, String name) {
    
            return pattern.matcher(name).matches();
    
        }
    
    }
    • 获取全部文件:

    正则表达式为:"[\s\S]*"表示任意长度的字符:

        @Test
    
        public void DirFileter(){
    
            File path = new File(".");
    
            String[] list;
    
            list = path.list(new DirFilter("[\s\S]*"));
    
            //list = path.list(); //不用正则表达式的方式获取
    
            Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
    
            for(String dirItem : list){
    
                System.out.println(dirItem);
    
            }
    
        }

    结果:

    • 获取特定文件:正则表达式:"[a-z]*"
        @Test
    
        public void DirFileter2(){
    
            File path = new File(".");
    
            String[] list;
    
            list = path.list(new DirFilter("[a-z]*"));
    
            Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
    
            for(String dirItem : list){
    
                System.out.println(dirItem);
    
            }
    
        }

    结果:获取所有名称小写英文字母的文件

  • 相关阅读:
    Python编程第5讲—if 语句
    GIT 笔记
    jQuery多余文字折叠效果
    静态库与动态库的制作与使用
    Makefile
    C++ 有理数类
    使用mstest.exe 命令行跑test case(不安装Visual Studio 2010)
    Termp Folder and its subfolders
    ToString() 格式化字符串总结
    REST基础
  • 原文地址:https://www.cnblogs.com/daguozb/p/11872245.html
Copyright © 2011-2022 走看看