我试图在一个包含'|'的字符串上使用JSTL split作为分隔符。但是,如果两者之间没有值,则拆分在最终数组中省略。
例如:abc | def || jkl
我希望数组包含(4项) “ABC; “高清” “” 'JKL'
但是,分割会跳过空值,我只得到3个项目。
我知道在js中我们可以添加-1参数来避免这个问题。我们如何在JSTL中解决这个问题?
非常感谢任何帮助。
答案 0 :(得分:0)
根据the specification,fn:split
内部使用StringTokenizer
,因此行为与StringTokenizer
相同。
所以我认为只有JSTL很难实现。一种可能的解决方案是使用java.lang.String.split()
。例如,以下代码:
<% request.setAttribute("strings", "abc|def||jkl".split("\\|")); %>
<c:forEach var="string" items="${strings}" varStatus="status">
<c:out value="${status.index}"/>:<c:out value="${string}"/>
</c:forEach>
打印出来:
0:abc 1:def 2: 3:jkl