基本上,我有这些字符串:
/path/to/Pbox01/file1_#$%encryp
/path/to/Pbox01/file4_#$%encryp
/path/to/Pbox02/file2_#$%encryp
我希望每次迭代都只有file1
,file4
,file2
。这些是文件名,它们可以是任何内容(例如file
,stack
,blahblahblah
。首先,我希望在最后一次删除后获得该部分 - 这是我的部分最大的问题是。结尾是硬盘,所以我想修剪_#$%encryp,这是10个字符 - 我将使用:
public String removeLastChar(String s) {
if (s == null || s.length() == 0) {
return s;
}
return s.substring(0, s.length()-10);
}
总而言之,问题是:如何在最后/
之后获取字符串的一部分?
答案 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("/");
然后只取数组中的最后一个值进一步处理。