从这个字符串:“/ resources / pages / id / AirOceanFreight.xhtml”
我需要检索两个子字符串:pages /之后的字符串和.xhtml之前的字符串。
/ resources / pages /是不变的。 id和AirOceanFreight各不相同。
感谢任何帮助,谢谢!
答案 0 :(得分:9)
我喜欢Jakarta Commons Lang StringUtils:
String x = StringUtils.substringBetween(string, "/resources/pages/", ".xhtml");
或者,如果".xhtml"
也可以出现在字符串的中间:
String x = substringBeforeLast(
substringAfter(string, "/resources/pages/"), ".xhtml");
(我也喜欢静态导入)
答案 1 :(得分:3)
没有雅加达公地的替代方案。使用常量:
private final static String PATH = "/resources/pages/";
private final static String EXT = ".xhtml";
你只需要这样做:
String result = filename.substring(PATH.length(), filename.lastIndexOf(EXT));
答案 2 :(得分:1)
您可以在链中使用拆分方法。
String test = "/resources/pages/id/AirOceanFreight.xhtml";
String result = test.split(".xhtml")[0].split("/resources/pages/")[1];
答案 3 :(得分:0)
您还可以尝试使用以下正则表达式模式:
(小于?=页面\ /)(。?。+(= XHTML))