我正在尝试返回文件/目录的目录以及它们的目录。
我有"this/iss/the/root/assets/images/icons/parent"
,它是"this/iss/the/root/assets/images/icons/parent/child
的父级。
这将是根路径this/iss/the/root
,我希望在根路径之后获取所有内容:assets/images/icons/examples'
即给定根,如何在根之后但在子之前提取所有目录?
我试过了:
parent.lastIndexOf(root)
但它给了我整个父路径。
对不起,这是一个很长的啰嗦。我花了很长时间盯着我的代码,没有停下来,差不多是午夜!
答案 0 :(得分:1)
试试这个:
String str = "this/iss/the/root/assets/images/icons/parent/child";
String root = "this/iss/the/root/";
String rootRegex = root.replace("/", "\\/"); //escape fwd slashes
String ptrnStr = "^" + rootRegex + "(.+)child\\Z";
java.util.regex.Pattern ptrn = Pattern.compile(ptrnStr);
java.util.regex.Matcher mtchr = ptrn.matcher(str);
if(mtchr.find())
{
String between = mtchr.group(1);
System.out.println("FOUND: " + between);
}
答案 1 :(得分:0)
一种方法可能是这样,将#lastIndexOf()
与#substring()
结合使用:
String parent = "this/iss/the/root/assets/images/icons/parent";
if (parent.lastIndexOf("root/") != -1) {
child = parent.substring(parent.lastIndexOf("root/") + 5);
}
答案 2 :(得分:0)
我建议您使用Java 7中的Path类。
您只需致电path.getParent()
或致电iterator()
并继续工作,直至到达目的地。