java从字符串路径列表中获取子元素
如果我有一个字符串路径列表
Mammal/
Mammal/Pet/
Mammal/Pet/Dog/
Mammal/Pet/Cat/
Bird/
Bird/Blah/
Bird/Blah/Parrot/
Bird/Blah/Parrot/Feather/
而我只想要孩子的大部分元素
Mammal/Pet/Dog/
Mammal/Pet/Cat/
Bird/Blah/Parrot/Feather/
我怎样才能比现在做得更好呢
我目前的代码写得不是很好,但它确实有效
List<String> paths = ...;
List<String> children = new ArrayList<String>();
if(paths.size()==1){children.add(paths.get(0));}
for(int i=1; i < paths.size(); i++){
//Found a local maximum in number of "/"'s
if(paths.get(i).split("/").length <= paths.get(i-1).split("/").length){
children.add(paths.get(i-1));
}
else if(i==paths.size()-1){
children.add(paths.get(i));
}
}
# 1 楼答案
您可以使用文件。walkFileTree(),同时添加“叶”目录。参数是起始路径和SimpleFileVisitor实现。访问者只需检查当前目录中的文件,如果文件本身都不是目录,则该目录将添加到路径集