0

首先,我想原谅这个问题是否已经讨论过,如果你指出我已经回答的问题,我会很高兴!我找不到可以帮助我的人。

我必须只提取这样一个字符串中最后一个“/”之后的最后一部分:/test/test2/test3

我只需要提取“test3”。但我自己无法解决,所以我请求你的帮助。

4

3 回答 3

15

您只需要找到 的最后一个索引 /,然后在之后获取子字符串

int lastIndex = text.lastIndexOf('/');
String lastPart = text.substring(lastIndex + 1);

(当然存在其他选项 - 正则表达式和拆分/例如......但以上是我要做的。)

请注意,因为我们必须使用+ 1过去的 last /,所以即使没有任何斜线,它仍然可以工作的方便属性:

String text = "no slashes here";
int lastIndex = text.lastIndexOf('/'); // Returns -1
String lastPart = text.substring(lastIndex + 1); // x.substring(0).equals(x)
于 2013-02-19T20:58:49.330 回答
10

使用String#lastIndexOf()

"/test/test2/test3".substring("/test/test2/test3".lastIndexOf("/")+1)

还假设它是一个文件路径。你也可以使用File#getname()

File f = new File("/test/test2/test3");
System.out.println(f.getName());
于 2013-02-19T20:58:35.297 回答
2

如果您还需要隔离字符串的其他部分,这将是最简单的方法。

String s="a/b/c"; //Works also for "a b c" and "a/b/c/"
String[] parts=s.split("/");
System.out.println(parts[parts.length-1]);
于 2013-02-19T23:05:23.333 回答