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

时间:2014-11-12 21:56:15

标签: java string

基本上,我有这些字符串:

/path/to/Pbox01/file1_#$%encryp
/path/to/Pbox01/file4_#$%encryp
/path/to/Pbox02/file2_#$%encryp

我希望每次迭代都只有file1file4file2。这些是文件名,它们可以是任何内容(例如filestackblahblahblah。首先,我希望在最后一次删除后获得该部分 - 这是我的部分最大的问题是。结尾是硬盘,所以我想修剪_#$%encryp,这是10个字符 - 我将使用:

public String removeLastChar(String s) {
    if (s == null || s.length() == 0) {
        return s;
    }
    return s.substring(0, s.length()-10);
}

总而言之,问题是:如何在最后/之后获取字符串的一部分?

3 个答案:

答案 0 :(得分:4)

我认为你可以使用String.lastIndexOf(int)之类的,

public String removeLastChar(String s) {
  if (s == null || s.length() == 0) {
    return s;
  }
  return s.substring(s.lastIndexOf('/') + 1, s.length() - 10);
}

答案 1 :(得分:1)

public void changetomain(String [] args) {

    ArrayList<String> paths = new ArrayList<String>();
    paths.add("/path/to/Pbox01/file1_#$%encryp");
    paths.add("/path/to/Pbox01/file2_#$%encryp");
    paths.add("/path/to/Pbox01/file4_#$%encryp");

    ArrayList<String> filenames = getFilenames(paths);  

}

private ArrayList<String> getFilenames(ArrayList<String> paths) {
    ArrayList<String> filenames = new ArrayList<String>();
    for(String path : paths) {
        String filename = path.substring(path.lastIndexOf("/") + 1, path.indexOf("_"));
        filenames.add(filename);
    }

    return filenames;
}

答案 2 :(得分:0)

可能你可以使用这样的东西,

String[] strArray = str.split("/");

然后只取数组中的最后一个值进一步处理。