jstl令牌分割功能

时间:2014-12-01 18:30:24

标签: split jstl tokenize

我正在尝试拆分字符串(变量名称为colorString),如下所示。

 '7000000000000003601/_/SHP_COLOR/_/Color/_/3.00000/_/7000000000006065548/_/DragonBerry/_/DragonBerry/_/49.00000/_/1/_/0/_/0/_/0/_/0/_/1/_/DragonBerry_Small.jpg'

我用字符串'/ _ /'拆分它 我需要的是最后一个元素'DragonBerry_Small.jpg' 我只得到Small.jpg

这是代码段

<c:set var="splitURI" value="${fn:split(colorString, '\\\/_\\\/')}"/>
<c:set var="imgName" value="${splitURI[fn:length(splitURI)-1]}"/>    

我在这做什么..请帮助。

当有像'DragonBerry Small.jpg'这样的空间时,我面临同样的问题

1 个答案:

答案 0 :(得分:0)

fn:基于单个字符而不是字符串拆分拆分。所以诀窍是做一个替换,你用字符串替换字符串中不会显示的字符(通常管道效果很好)。

示例:

<c:set var="colorStringTransformed" value="${fn:replace(colorString, '/_/', '|')}"/>   

现在colorStringTransformed应该如下所示:

'700000000000000360|SHP_COLOR|Color|3.00000|7000000000006065548|DragonBerry|DragonBerry|49.00000|1|0|0|0|0|1|DragonBerry_Small.jpg'

然后你可以分开它。

<c:set var="splitURI" value="${fn:split(colorStringTransformed, '|')}"/>
<c:set var="imgName" value="${splitURI[fn:length(splitURI)-1]}"/>