繁体   English   中英

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

[英]How to get a part of a string in java?

基本上,我有以下字符串:

/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);
}

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

我认为您可能会使用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);
}
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;
}

也许您可以使用类似的方法,

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

然后仅获取数组中的最后一个值以进行进一步处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM