如何在表达式语言中拆分字符串并获取最后一个元素?

时间:2014-06-13 09:14:13

标签: java string jsp split el

这就是我正在尝试的但似乎不起作用:

(myStringHere.split(".")[(myStringHere.split(".").length)-1]).concat(text[myStringHere])

我的字符串将是这样的:

com.foo.bar.zar.gar.ThePartIWant

ThePartIWant是我想在页面中显示的内容。

我正在使用Expression Language 2.2

3 个答案:

答案 0 :(得分:6)

如果您是在JSP中执行此操作,请尝试使用JSP JSTL function tag library来提供JavaDoc

中定义的方法丢失

Oacle The Java EE 5 Tutorial - JSTL Functions

上阅读更多内容

以下是基于dot on split获取最后一个值的代码。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
 ...

<c:set var="string1" value="This.is.first.String." />
<c:set var="string2" value="${fn:split(string1, '.')}" />

<c:set var="lastString" value="${string2[fn:length(string2)-1]}" />

<c:out value="${lastString }"></c:out>

输出:

String

这是另外一个example

答案 1 :(得分:0)

你想只捕捉字符串的最后部分?试试这个:

string[] s_tab = myStringHere.split(".");
string result = s_tab[s_tab.length - 1];

如果你想要一行:

string result = myStringHere.split(".")[StringUtils.countMatches(myStringHere, ".")];

答案 2 :(得分:0)

试试这个:

String s = "com.foo.bar.zar.gar.ThePartIWant";

System.out.println(s.split("\\.")[(s.split("\\.").length)-1]);

&#34;&#34;是一个特殊的角色。你必须逃避它,因为句号表示正则表达式中的任何字符。

来源:How to split a string in Java