我现在做的程序,是input一个filename参数。然后要看这个file有多少子文件,因为是php file,看每一行包括require .... ("...php")这个""里的就是子文件。
现在做到这步,但是问题是子文件下面还会有子文件,就不知道怎么处理了。高手帮忙给点思路啊?
另外我还要算这个文件的depth,比如input的是a 文件,有b,c2个子文件,同时b又有d子文件,那么a的depth就是2,因为最远的一个路径是a->b->d,是2层。
各位高手,特别是java_2000,火龙果帮帮我啦,先谢谢各位了!
现在做到这步,但是问题是子文件下面还会有子文件,就不知道怎么处理了。高手帮忙给点思路啊?
另外我还要算这个文件的depth,比如input的是a 文件,有b,c2个子文件,同时b又有d子文件,那么a的depth就是2,因为最远的一个路径是a->b->d,是2层。
各位高手,特别是java_2000,火龙果帮帮我啦,先谢谢各位了!
解决方案 »
- 在控制台输入任意一个数(1-9),输出该数字的电子图像
- 关于IO中的write(int b) 方法
- 很基础的问题。进来留言都有分
- 请问:用JAVA如何读取微软CA证书的公钥和私钥?
- 基础界面问题
- 求教老手们,javamail有过滤的api吗?
- 请给一个Together For Eclipse 6.1 及 Keygen的下载地址,先给20分,解决后再开贴给100分
- 俺不懂java,请教各位我应该用什么编辑器或者编译器入手,现在流行的是什么?
- 兄弟们,帮帮我,我要考试,救命啊!
- 一个头疼的问题,请对java多态性有深入了解的高手给予关注
- socket总是出错啊,我不行了,救我!!
- 一个聊天程序每个客户端不能显示大家说的话?
...
function(depth+1);
...
}调用的时候
function(1);第一层就是1,每次递归都会增加1个
我现在就是要找递归次数最多的那一次。
if(depth>maxDepth){
maxDepth = depth;
}
// 下面开始解析
String[] includeFiles = parseFile(file);
for(String includeFile : includeFiles){
search(includefile,depth+1);
}
}
老紫竹,你的答案好像是算tree一共有多少个node,但是我想要知道的是这个tree最深有几层。好像有点不一样啊。
不是
depth = depth+1;
search(file,depth);区别很大!
//int dep = 0;
List list = readFile(filename);
List requirelist = new ArrayList();
File f = new File("");
String str1 = f.getAbsolutePath();
for(int i=0; i<list.size(); i++) {
String str = list.get(i).toString();
Pattern p = Pattern.compile("(require|include).*[\"](.*.php)[\"]");
Matcher m = p.matcher(str);
while(m.find()){
String fn = str1 + m.group(2);
requirelist.add(fn);
}
}
for(int i=0; i<requirelist.size(); i++)
{
findChildren(requirelist.get(i).toString());
}
return requirelist;
}我的requirelist是一个list,包括所有的子文件。这个方法能找到depth么?我还是有点不理解你的方法啊。我先再去试试,如果能做出来最好了。
先谢了!