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);
    
            }
    
        }

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

  • 相关阅读:
    POJ 1144 Network(割点)
    POJ 3177 Redundant Paths & POJ 3352 Road Construction(双连通分量)
    ASCII码
    数组
    Java语法基础
    eclipse汉化过程
    指针
    面向对象
    第一课JAVA开发环境配置
    初学编写JAVA程序
  • 原文地址:https://www.cnblogs.com/daguozb/p/11872245.html
Copyright © 2011-2022 走看看