如何获取字符串的一部分?

时间:2012-10-26 22:10:40

标签: java directory substring parent

我正在尝试返回文件/目录的目录以及它们的目录。

我有"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)

但它给了我整个父路径。

对不起,这是一个很长的啰嗦。我花了很长时间盯着我的代码,没有停下来,差不多是午夜!

3 个答案:

答案 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()并继续工作,直至到达目的地。