Java-从字符串中字符的第二次出现中获取子字符串

问题描述 投票:0回答:2

我的输入:"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);

如何以单线实现相同的功能?

java string substring indices lastindexof
2个回答
2
投票

我可能在这里使用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);

0
投票

使用lastIndexOf(str, fromIndex)变体:

String v2 = v.substring(v.lastIndexOf('/', v.length() - 2) + 1, v.length() - 1);
© www.soinside.com 2019 - 2024. All rights reserved.