在JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù)中,函數(shù)標(biāo)簽庫(kù)fn:substring()方法比較特殊,語(yǔ)法為:
${fn:substring(<string>,<beginIndex>,<endIndex>)}
功能:從字符串string中,截取從起始索引值開(kāi)始(包含),到終止索引值結(jié)束(不包含)的子字符串。
該標(biāo)簽類似Excel中的MID函數(shù),其語(yǔ)法結(jié)構(gòu)為:
MID(text, start_num, num_chars)
其中 start_num 相當(dāng)于這里的 beginIndex,只是起始編號(hào)為 1;num_chars 代表子文本的長(zhǎng)度。
對(duì)于fn:substring()方法,網(wǎng)上許多資料以字符串“This is first String.”為例,演示了 ${fn:substring("This is first String.", 5, 15)} 的運(yùn)行結(jié)果,但并未提示“子字符串是不包含終止索引值對(duì)應(yīng)的字符元素”這一要點(diǎn),在此特別強(qiáng)調(diào)一。個(gè)人認(rèn)為,該標(biāo)簽語(yǔ)法結(jié)構(gòu)若改為如下形式更便于理解:
${fn:substring(<string>,<beginIndex>,<beginIndex>+<substringLength>)}
這樣,參數(shù)3就變成了子字符串首字符索引值 beginIndex 與子串總長(zhǎng) substringLength 的和,這樣對(duì)于 ${fn:substring("This is first String.", 5, 15)} 就可以理解為:從原字符串索引值為5的字符開(kāi)始,截取10個(gè)字符(=15-5)所形成的子字符串。
<body>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<h1>JSTL函數(shù)標(biāo)準(zhǔn)標(biāo)簽庫(kù)之fn:substring()方法示例</h1>
<h3>語(yǔ)法:<%="${fn:substring(<string>, <beginIndex>, <endIndex>)}" %></h3>
<hr>
<c:set var="strDemo" value="This is first String."/>
<h3>原字符串為:<c:out value="${strDemo}"/></h3>
<h3><%="${fn:substring(strDemo, 5, 0)}" %> =
"<c:out value="${fn:substring(strDemo, 5, 0)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -0.4)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -0.4)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -0.5)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -0.5)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -0.6)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -0.6)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -1.0)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -1.0)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -1.4)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -1.4)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -1.5)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -1.5)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, -1.6)}" %> =
"<c:out value="${fn:substring(strDemo, 5, -1.6)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, 15.0)}" %> =
"<c:out value="${fn:substring(strDemo, 5, 15.0)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, 15.4)}" %> =
"<c:out value="${fn:substring(strDemo, 5, 15.4)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, 15.5)}" %> =
"<c:out value="${fn:substring(strDemo, 5, 15.5)}" />"</h3>
<h3><%="${fn:substring(strDemo, 5, 15.6)}" %> =
"<c:out value="${fn:substring(strDemo, 5, 15.6)}" />"</h3>
</body>
更多建議: