1

我的输入:"professions/medical/doctor/"

我想要的输出:"doctor"

我有以下解决方案,但它不是单行的:

String v = "professions/medical/doctor/";
String v1 = v.substring(0, v.length() - 1);
String v2 = v1.substring(v1.lastIndexOf("/")+1, v1.length());
System.out.println(v2);

我怎样才能在单行中达到同样的效果?

4

2 回答 2

3

我可能会String#split在这里使用(需要一条或两条线的解决方案):

String v = "professions/medical/doctor/";
String[] parts = v.split("/");
String v2 = parts[parts.length-1];
System.out.println(v2);

如果你知道你想要第三个组件,那么你可以使用:

System.out.println(v.split("/")[2]);

对于一个真正的单线,String#replaceAll可能工作:

String v = "professions/medical/doctor/";
String v2 = v.replaceAll(".*/([^/]+).*", "$1");
System.out.println(v2);
于 2019-10-31T02:24:47.023 回答
1

使用lastIndexOf(str, fromIndex)变体:

String v2 = v.substring(v.lastIndexOf('/', v.length() - 2) + 1, v.length() - 1);
于 2019-10-31T02:22:50.070 回答