目录
  • 前言
  • Java递归模糊查询文件
  • 总结

前言

在数据结构算法设计中,或者一个方法的具体实现的时候,有一种方法叫做“递归”,这种方法在思想上并不是特别难,但是实现起来还是有一些需要注意的。虽然对于很多递归算法都可以由相应的循环迭代来代替,但是对于一些比较抽象复杂的算法不用递归很难理解与实现。

Java递归模糊查询文件

字符串模糊查询

    /**
     * 模糊查询
     * @param str          需要查询的字符串
     * @param part         部分
     * @return  true 代表查到的  false 代表没查到
     */
    public boolean matchStringByIndexOf(String str,String part) {
        int count = 0;
        int index = 0;
        while( ( index = str.indexOf(part, index) ) != -1 )
        {
            index = index+part.length();
            count++;
        }
        if(count < 1){
            return false;
        }
        return true;
    }

递归遍历文件

    /**
     * 模糊查询相关文件
     * @param path      文件路径
     * @param fileName  需要找的文件
     */
    public List<String> searchFileList(File path, String fileName){
        File[] files=path.listFiles();   //列出所有的子文件
        for(File file :files)
        {
            if(file.isFile()){//如果是文件,则先模糊查询,判断是否相关
                if(stringUtilService.matchStringByIndexOf(file.toString(),fileName)){
                    fileListData.add(file.toString());
                }
            }else if(file.isDirectory())//如果是文件夹,则输出文件夹的名字,并递归遍历该文件夹
            {
                searchFileList(file,fileName);//递归遍历
            }
        }
        return fileListData;
    }

测试

    public static void main(String[] args) {
        String A ="G:/HTML/testData/达芬奇";
        File file = new File(A);
        FileService fileService = new FileServiceImpl();
        System.out.println(fileService.searchFileList(file,"myse").toString());
    }

总结

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。