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;

    }

}

相關文章
相關標籤/搜索