public class Functionsx {
public static String abbreviate(String str, int width, String ellipsis) {
if (StringUtils.isBlank(str)) {
return "";
}
String regex = "[/u4e00-/u9fa5/ufe30-/uffa0]+$";
int w = 0;// string width
int l = 0;// string length
for (char s : str.toCharArray()) {
w = String.valueOf(s).matches(regex) ? w + 2 : w + 1;
if (w > width) {
break;
}
l++;
}
return w > width ? str.substring(0, l) + ellipsis : str.substring(0, l);
}
做成标签:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
<description>JSTL 1.1 functionsx library</description>
<display-name>JSTL functionsx</display-name>
<tlib-version>1.1</tlib-version>
<short-name>fnx</short-name>
<uri>http://java.sun.com/jsp/jstl/functionsx</uri>
<function>
<name>abbreviate</name>
<function-class>com.ebiz.jsp.taglibs.fnx.Functionsx</function-class>
<function-signature>java.lang.String abbreviate(java.lang.String,int,java.lang.String)</function-signature>
</function>
</taglib>
--转自