JAVA--高级基础开发

day10_File 类, 递归练习题

2.2 递归累加求和 计算 1---n 的和java

public class Exercise01 {数组

    public static void main(String[] args) {ide

        int  n=10;idea

        int num=Meth(n);spa

        System.out.println(num);.net

    }对象

    public static int  Meth(int n){递归

       if(n==1){ci

           //若是==1 就返回get

           return 1;

       }

       //若是不等于1的话,递归n+(n+1);

       return n+Meth(n-1);

    }

 

}

 

 

2.3 递归求阶乘  阶乘:全部小于及等于该数的正整数的积例如 n 的阶乘:n!=n*(n-1)*…*3*2*1

public class Exercise02 {

    public static void main(String[] args) {

        // n!=n*(n-1);

        int  n=6;

        int a=Meth(n);

        System.out.println(a);

    }

    public static int  Meth(int n){

        if(n==1){

            return 1;

        }

        //1的阶乘是1

        // n不为1时,方法返回 n! = n*(n‐1)! 递归调用getValue方法

 

        return n*Meth(n-1);

    }

}

 

2.4 递归打印多级目录

分析:多级目录的打印,就是当目录的嵌套,遍历以前,没法知道到底有多少级目录,因此

咱们能够使用递归实现

public class Exercise03 {

    public static void main(String[] args) {

 

        //建立File对象

        File  ff=new File("F:\\");

         Meth(ff);

    }

    public static  void  Meth(File demo){

 

        //File[] listFiles();返回一个File数组,表示该file目录中全部的文件和目录

 

        File[]files=demo.listFiles();

        for(File  ss:files){

            //判断若是是文件,就打印出绝对路径

            if(ss.isFile()){

                //是文件就打印文件绝对路径

                System.out.println("文件名:"+ss.getAbsoluteFile());

            }else{

                //不是文件的话,就是目录打印目录的绝对路径

                System.out.println("目录:"+ss.getAbsoluteFile());

                //继续遍历,就造成递归的方法

                Meth(ss);

            }

        }

    }

}

 

第三章 综合练习

3.1 文件搜索

搜索某个目录中.java 的文件,例如 IDEA 的工做空间:D:\2019-10\ideawork

分析: 一、 目录搜索,没法判断多少级目录,因此使用递归,遍历全部的目录

二、 遍历目录时,获取的子文件,经过文件名,判断是否符合条件

public class Exercise04 {

    public static void main(String[] args) {

 

        //建立File对象

        File  ff=new File("D:\\Day02_demo2\\src\\day08");

        //表示该目录中的全部文件和目录

        File[]files= ff.listFiles(new Myinterfaces());

        for(File  ss:files){

            System.out.println(ss.getName());

        }

    }

}

class  Myinterfaces implements FilenameFilter{

    @Override

    public boolean accept(File dir, String name){

        //File表示当亲过滤的对象,name表示当前过滤的文件名

        if(name.endsWith(".java")){

            return true;

        }

        return false;

    }

}

相关文章
相关标签/搜索