首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java -每次运行for循环时缩进一行

Java -每次运行for循环时缩进一行
EN

Stack Overflow用户
提问于 2013-12-06 06:10:14
回答 4查看 2.5K关注 0票数 0

我正在编写一个方法来列出一个目录中的所有文件,但我不知道如何使每个子目录比上一个多一个选项卡。下面是我的代码:

代码语言:javascript
运行
复制
private static void recurseDirectoryHelper(File rootDirectory){
    File[] list = rootDirectory.listFiles();
    if (rootDirectory.isDirectory()){
        for (int f = 0; f < list.length; f++){
            if (list[f].isFile()){
                System.out.println("\t" + list[f].getName());
                countFiles++;
            }
        }
        for (int d = 0; d < list.length; d++){
            if (list[d].isDirectory()){
                System.out.println("Subdir: " + list[d].getName());
                recurseDirectoryHelper(list[d]);
            }       
        }
    }
    //System.out.println("Total Files: " + countFiles + "\t" + "Total Directories: " + countDirs);
}
EN

回答 4

Stack Overflow用户

发布于 2013-12-06 06:13:41

向您的函数添加另一个名为count的参数,如下所示:

代码语言:javascript
运行
复制
private static void recurseDirectoryHelper(File rootDirectory, int count){

每次递归调用函数时,都要传递count + 1,如下所示:

代码语言:javascript
运行
复制
recurseDirectoryHelper(list[d], count+1);

然后,当您执行System.out.println时,您确切地知道要执行多少个选项卡。

票数 1
EN

Stack Overflow用户

发布于 2013-12-06 06:20:55

我只需在递归方法中添加一个tabSpace字符串参数,以避免不必要的循环:

代码语言:javascript
运行
复制
 private static void recurseDirectoryHelper(File rootDirectory, String tabSpace){

在第一次调用中,我会根据需要将tabSpace作为空字符串("")或单个制表符(“\t”)传递,然后使用-在对子目录的递归调用中,只需将tabSpace+"\t"作为

代码语言:javascript
运行
复制
     recurseDirectoryHelper(list[d], ""); //<-- First call from outside

     recurseDirectoryHelper(list[d], tabSpace+"\t"); //<-- recursive calls

在打印列表时,只需使用tabSpace进行缩进:

代码语言:javascript
运行
复制
     System.out.println(tabSpace + list[f].getName());
票数 1
EN

Stack Overflow用户

发布于 2013-12-06 06:12:26

有第二个参数来存储你的方法的递归级别。当它第一次被调用时,它将是零。当您以递归方式调用该方法时,传入level + 1

打印时,使用level作为要打印的选项卡数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20411852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档