`

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 页面中进行字符串截取可以通过多种方式实现,包括直接使用 Java 的 `String` 类方法、EL 表达式、JSTL 标签库以及 JavaScript。根据实际需求和项目结构,选择最适合的方法进行字符串处理。在学习过程...

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

    本篇文章将详细探讨如何在JSP中处理在线编辑器的字符串截取问题。 首先,我们需要理解在线编辑器的工作原理。在线编辑器如CKEditor、TinyMCE等,允许用户以所见即所得的方式编辑内容,并将HTML格式的数据发送到...

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

    在这个特定的场景中,"jsp页面字符串截取,点击弹出弹出层"是一个常见的交互需求,通常涉及到前端的JavaScript操作和后端的JSP处理。 首先,字符串截取是编程中的基本操作,无论是在Java还是JavaScript中。在JSP...

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

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

    (TAG标签)jstl和struts2标签截取字符串[文].pdf

    例如,我们可以创建一个名为`UFunction`的类,定义一些自定义函数,如`getLen`函数用于获取字符串的长度,`substr`函数用于截取字符串的一部分。 ```java package com.uisk.util; / * 定义 EL自定义函数 */ ...

    字符串的截取和全选并删除 讲解及代码

    ### 字符串的截取与全选并删除功能解析及示例代码 #### 一、字符串的截取 在Web开发中,经常会遇到文本数据过长的问题,这不仅影响页面的美观,还可能导致布局错乱。为了提升用户体验,通常会采用截取字符串的方式...

    直接截取jstl长度控制字符串长短

    ### 直接截取JSTL长度控制字符串长短 在Java Web开发中,JSTL(JavaServer Pages Standard Tag Library)是一种常用的标签库,它提供了一系列功能强大的标签,用于简化JSP页面的开发过程。其中,`&lt;fn:substring&gt;`是...

    ajax iframe jsp 无刷新上传文件.zip

    4. **JavaScript字符串函数**:在前端处理中,JavaScript的字符串函数非常关键,例如trim()去除空白,substring()截取子串,replace()替换字符,split()分割字符串等。这些函数在处理上传文件名、路径或者错误信息时...

    JSP 中限定字符长度

    在本篇内容中,我们将深入探讨如何在JSP(JavaServer Pages)中实现对字符串长度的限制,这对于处理页面上过长的文本内容非常有用。文章通过一个具体的示例来展示这一过程,不仅包含了必要的代码片段,还涉及了JSP与...

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

    该方法能够确保在截断中文字符串时不会出现乱码,并且可以适用于JSP页面中的中文字符串截取需求。 #### 方法实现 ```java /** * 截取字符串,len为字节长度 * @param str 需要截取的字符串 * @param len 字节...

    JSTL之functions标签.doc

    这个示例展示了如何在JSP页面中使用这些函数,例如计算字符串的长度、查找子字符串、转换大小写、截取子字符串等。 总之,`functions`标签库为JSP开发者提供了便利的字符串操作工具,使得在页面中处理字符串变得...

    jstl字符窜的截取

    在IT行业中,JSTL(JavaServer Pages Standard Tag Library)是一种标准标签库,它提供了许多预定义的标签,...通过学习和应用JSTL的字符串截取功能,开发者能够更高效地处理和展示数据,提高代码的可读性和可维护性。

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

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

    JSP截取服务端桌面

    这可能涉及到Servlet的HTTP响应处理,将图像数据编码为Base64字符串或转化为JPEG/PNG等常见格式后再通过HTTP响应发送。 5. **安全性和权限**:由于涉及到服务器端资源的访问,开发者需要确保只有授权的用户或服务能...

    JSTL 字符串处理函数

    截取字符串的一部分。可以指定起始位置和长度。例如: ```jsp ${fn:substring('Hello World', 0, 5)} &lt;!-- 输出:Hello --&gt; ``` 5. **fn:substringAfter** 返回在指定字符后的字符串部分。如: ```jsp ${fn:...

    jsp程序设计-复习重点.doc

    以上是对JSP程序设计复习重点的详细解析,涵盖了JSP开发环境、字符串处理、表单提交中文信息处理、JAVABean分类及特点、Servlet生命周期、Servlet与JSP的区别、JSP处理过程以及JSP指令标识等内容。希望对学习JSP技术...

    JSP技巧收集——超多超赞的JSP实用小技巧

    - `stringA.substring(2, 6)`: 截取字符串中从索引2到5之间的子串。 40. **数学计算**: - 提供了一系列数学常量和函数,如圆周率、平方根、最大值、次方、四舍五入等。 41. **日期时间操作**: - `var today = ...

Global site tag (gtag.js) - Google Analytics