问一个神奇的问题:
<c:out value="${fn:endsWith('helle','e') }"></c:out>
<c:out value="${fn:endsWith('hhlle','e') }"></c:out>
访问的时候显示 false true 。 为什么啊啊????
<c:out value="${fn:endsWith('helle','e') }"></c:out>
<c:out value="${fn:endsWith('hhlle','e') }"></c:out>
访问的时候显示 false true 。 为什么啊啊????
2016-10-04
public static boolean endsWith(String input, String substring) {
if(input == null) {
input = "";
}
if(substring == null) {
substring = "";
}
int index = input.indexOf(substring);
return index == -1?false:(index == 0 && substring.length() == 0?true:index == input.length() - substring.length());
}
这是它的源码,你看了这个应该就明白了,
最后index == input.length() - substring.length(),在helle中,input.length()为5,而substring.length()为1,
而index为1,所以index!=5-1,所以返回false
举报