`

JSP字符串截取类..

 
阅读更多

页面使用时:

<s:bean name="com.hwtt.rbt.user.bean.CutStringBean" id="cutString">
  <s:param name="str" value="singerName"/>
  <s:param name="hold" value="3"/>
  <s:property value="formatStr"/>
</s:bean>

工具类:

public class CutStringBean {

    private String str;//要格式化的字符串
    private int hold;//保留的长度
    private String end;//结束符
    private String formatStr;//格式化后的字符串

    private static final String END = "..";

    public CutStringBean() {
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }

    public int getHold() {
        return hold;
    }

    public void setHold(int hold) {
        this.hold = hold;
    }

    public String getEnd() {
        return end;
    }

    public void setEnd(String end) {
        this.end = end;
    }

    public String getFormatStr() {
        formatStr = getShortStr(str, hold, end);
        return formatStr;
    }

    public void setFormatStr(String formatStr) {
        this.formatStr = formatStr;
    }

    /**
     * 将字符串缩短到指定长度,且与结束符结束
     *
     * @param str
     * @param hold 保留的长度
     * @param end  结束字符串,为空则为“..”
     * @return String
     */
    public String getShortStr(String str, int hold, String end) {
        if (str == null || hold < 1) return "";
        str = str.trim();
        if (hold > str.length()) return str;

//        int length = (hold % 2) != 0 ? hold - 1 : hold;
        end = end == null ? END : end;
        int abc123Size=0;//数字和字母个数
        if (str.length() > hold){
            for(int i=0;i<hold;i++){
                if(java.util.regex.Pattern.matches("[a-zA-Z0-9]",""+str.charAt(i))){ //判断数字或字母时增1
                    abc123Size++;
                }
            }

            int tempHold = hold;
            int twoAbc123=0;
            for(int i=tempHold;i<tempHold+abc123Size && i<str.length();i++){
                if(java.util.regex.Pattern.matches("[a-zA-Z0-9]",""+str.charAt(i))){ //如果是数字或字母时长度增1
                    hold++;
                }else if(twoAbc123 == 1){//一个中文需要两个数字或字母
                    hold++;
                    twoAbc123=0;
                }else{
                    twoAbc123++;
                }
            }
            return hold >= str.length() ? str : str.substring(0, hold) + end;
        }
        return str;
    }

}





分享到:
评论

相关推荐

    JSP中截取在线编辑器的字符串的处理.

    JSP中截取在线编辑器的字符串的处理. 博文链接:https://yidwo.iteye.com/blog/60097

    jsp页面截取字符串

    我相信大家得到这个是对大家有帮助的,希望大家好好学习,对大家能有用

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    从中截取字符串.asp 从中截取字符串 切分字符串.asp 切分字符串 删除字符串前后导空格.asp 删除字符串前导空格.asp 删除字符串后导空格.asp 反向截取字符串.asp ...

    jsp页面字符串截取,点击弹出弹出层

    NULL 博文链接:https://tydldd.iteye.com/blog/1927587

    JSP实用技巧集合,jsp编程的一些小技巧总结

    109.使用特定字符串对一个字符串进行分割? 110.格式化输出数字和字符? 111.生成一定范围的随机数? 112.调用其它应用程序? 113.禁止列出站点文件目录? 114.防止用户直接输入文件名访问JSP? 115.防止表单重复提交? 116...

    Java 面试宝典

    35、如何把一段逗号分割的字符串转换成一个数组? ............................................... 25 36、数组有没有 length()这个方法? String 有没有 length()这个方法? .................... 25 37、下面这...

    EL表达式截取字符串的函数说明

    ${fn:substring(你要截取的字符串),beginIndex,endIndex} 下面是JSTL中自带的方法列表以及其描述 函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 ${fn:contains(name,&gt; fn:...

    jsp编程技巧集锦

    JSP字符编码问题及转换大全? 80. 使用过滤器设置请求编码? 81. JSP或Servlet调用DLL? 82. 在JSP中包含Applet(时钟)? 83. 在Applet中显示一个html页面? 84. 使session强制失效85. iFreme编辑框使用?...

    鼠标悬停层

    table表列数据太长,一列显示太长会将样式撑乱,特将显示的数据做处理,可以后台字符串截取,也可以引入页面函数&lt;%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%&gt; ,页面处理,本例子当鼠标...

    java 截取字符串(判断汉字)

    jsp截取中文字符串 len为字节长度

    socket+dwr项目

    后台客户端每1s钟随机生成800KB数据(字符串),使用socket的UDP通信,将字符串截取16份,每份50KB,使用定时器每1S钟发送16次,在服务端使用线程接收,将16份字符串拼接放入Map数据池,打开jsp页面,通过js定时器每1S...

    JSP网络编程从基础到实践

    实例6 数组应用实例 实例7 字符截取程序示例 实例8 查找字符串程序示例 实例9 StringBuffer综合应用程序示例 实例10 日期数据应用示例 实例11 算术表达式综合运用实例 实例12 switch语句...

    JSP个人博客系统

    只在截取字符串和 md5加密上用到了两个 javaBeans,由于用的是以前的模版,一个星期就搞定了,总结了上次的经验,在页面 &lt;br&gt;调用,代码规范上做了很大的调整,希望对那些初学 jsp的人带来一丝启发。...

    jsp网络编程从基础到实践

    实例8 查找字符串程序示例 实例9 StringBuffer综合应用程序示例 实例10 日期数据应用示例 实例11 算术表达式综合运用实例 实例12 switch语句示例 实例13 循环应用综合实例 实例14 一个简单的计数器 实例15 ...

    个人博客系统 JSP入门版

    只在截取字符串和 md5加密上用到了两个 javaBeans,由于用的是以前的模版,一个星期就搞定了,总结了上次的经验,在页面 调用,代码规范上做了很大的调整,希望对那些初学 jsp的人带来一丝启发。。。 如果你有...

    JSP网络编程从基础到实践的实例代码

    实例8 查找字符串程序示例 实例9 StringBuffer综合应用程序示例 实例10 日期数据应用示例 实例11 算术表达式综合运用实例 实例12 switch语句示例 实例13 循环应用综合实例 实例14 一个简单的计数器 实例15 ...

Global site tag (gtag.js) - Google Analytics