Java子字符串跳过最后两个分隔符字符串

时间:2018-05-07 13:18:55

标签: java

获得类似结果的任何小而快的代码?

public static void main(String[] args) {
    String string = "/abc/def/ghi/jkl/mno/qqq.xml";
    String last = string.substring(string.lastIndexOf('/') + 1);
    String first = string.substring(0, string.lastIndexOf('/'));
    String first1 = first.substring(0, first.lastIndexOf('/'));
    String first2 = first1.substring(0, first1.lastIndexOf('/'));
    System.out.println(last);
    System.out.println(first2);
}

输出:

qqq.xml
/abc/def/ghi

2 个答案:

答案 0 :(得分:-1)

首先,我建议使用File.java和apache commons的一些帮助程序(FilenamesUtils和FileUtils)

要获取文件名(或称为'last'),请使用此文件。

File myFile = new File ("some\\path\\to\\file.xml");
System.out.println(myFile.getName());

要获取目录名称,请使用此

System.out.println(myFile.getParent());

答案 1 :(得分:-1)

public static void main(String[] args) throws IOException {
        String string = "/abc/def/ghi/jkl/mno/qqq.xml";
        String[] arr = string.split("/");
        String first2 = String.join("/", Arrays.copyOfRange(arr,0,4));
        System.out.println(arr[arr.length-1]);
        System.out.println(first2);
    }

这给出了您正在寻找的结果 我将字符串转换为数组,然后操纵它