-1

ファイル/ディレクトリのディレクトリとそのディレクトリを返そうとしています。

たとえば"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)

しかし、それは私に完全な親パスを与えます。

申し訳ありませんが、これは非常に長い間巻き込まれていました。私は自分のコードをじっと見つめて何年も過ごしてきましたが、それはほぼ真夜中です!

4

3 に答える 3

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);
    }
于 2012-10-26T22:22:47.970 に答える
0

#lastIndexOf()1つの方法は、次のように組み合わせることができます#substring()

String parent = "this/iss/the/root/assets/images/icons/parent";
if (parent.lastIndexOf("root/") != -1) {
    child = parent.substring(parent.lastIndexOf("root/") + 5);
}
于 2012-10-26T22:15:13.763 に答える
0

Java7のPathクラスを使用することをお勧めします。

目的地に到着するまで、電話するか、電話して作業しますpath.getParent()iterator()

于 2012-10-26T22:17:44.063 に答える