`
lishiguang
  • 浏览: 193122 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用 java来截取中文英文字符串,过多的用省略号显示

 
阅读更多

用 java来截取中文英文字符串,过多的用省略号显示

 

需求:任意一个字符串 比如"abc我爱中国" 大于12个字节的 要截取掉,用 ... 来结尾, 最终结果不能大于12个字节  注 中文占2个字节

 

public static String subStringCN(final String str, final int maxLength) {

if (str == null) {

return str;

}

String suffix = "...";

int suffixLen = suffix.length();

final StringBuffer sbuffer = new StringBuffer();

final char[] chr = str.trim().toCharArray();

int len = 0;

for (int i = 0; i < chr.length; i++) {

if (chr[i] >= 0xa1) {

len += 2;

} else {

len++;

}

}

if(len<=maxLength){

return str;

}

len = 0;

for (int i = 0; i < chr.length; i++) {

 

if (chr[i] >= 0xa1) {

len += 2;

if (len + suffixLen > maxLength) {

break;

}else {

sbuffer.append(chr[i]);

}

} else {

len++;

if (len + suffixLen > maxLength) {

break;

}else {

sbuffer.append(chr[i]);

}

}

}

sbuffer.append(suffix);

return sbuffer.toString();

}

 

public static void main(String[] args) {

 

String st2 = "是个好人啊,是个好人啊";

System.out.println(subStringCN(st2, 12));

 

String st3 = "是个好人啊 persen";

System.out.println(subStringCN(st3, 12));

 

String st4 = " persen是个好人啊";

System.out.println(subStringCN(st4, 12));

String st1 = "个好人啊";

System.out.println(subStringCN(st1, 12));

 

String st0 = "sdddddddddddddddddddd";

System.out.println(subStringCN(st0, 12));

}

 

 

分享到:
评论
1 楼 shugengen 2012-01-13  

相关推荐

    Java精确截取字符串.doc

    这个问题在文档标题“Java精确截取字符串.doc”中提到,描述也指出了解决字符串过长并需要添加省略号的需求。 以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```...

    截取字符串 省略用...表现 grivdview截取数据用..表现出来

    "截取字符串 省略用...表现 grivdview截取数据用..表现出来"这个标题和描述暗示了如何在数据显示时对过长的文本进行截取,并在末尾添加省略号(...)以表示被截断的部分。这种需求通常出现在数据表格、列表视图或者...

    怎么截取字符串的小程序

    在编程领域,截取字符串是一项基础且常用的操作。在标题为“怎么截取字符串的小程序”的知识主题中,我们将深入探讨如何在不同的编程语言中实现这一功能,以及它在实际应用中的价值。描述中提到的方法是通过确定字符...

    字符串 省略号 适配

    "字符串 省略号 适配"这个主题主要涉及到如何在显示有限空间内的文本时,对过长的字符串进行截断并添加省略号,以达到良好的用户界面(UI)展示效果。这种技术通常用于列表项、标签、标题等元素,确保信息清晰且不被...

    Java精确截取字符串[归类].pdf

    在Java编程中,有时我们需要对字符串进行精确的截取,以适应特定的显示需求或处理长文本。在上述内容中,主要讨论了两种常见的Java字符串截取方法。 第一种方法是使用`substring()`函数,这是一个基础且直接的字符...

    截 取 字符 串.rar

    在Python中,我们可以使用切片操作来截取字符串。例如,`string[start:end]`将返回从索引`start`到`end-1`的子串。如果省略`start`,则默认为0;如果省略`end`,则默认到字符串末尾。 3. **JavaScript中的字符串...

    网页中字段太长,省略号表示。css显示

    虽然JSP也可以处理字段太长的问题,但通常需要编写更多代码,如使用`substring()`方法截取字符串、判断长度、插入省略号等。这种方法增加了代码复杂度,不适用于动态内容或频繁变化的文本。同时,JSP更适合处理...

    字符串工具类

    在Java编程语言中,字符串是极其重要且频繁使用的数据类型。为了方便开发人员对字符串进行各种操作,Java提供了一系列的内置工具类,如`String`类本身的静态方法以及`org.apache.commons.lang3.StringUtils`这样的第...

    正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度

    以上代码展示了如何使用`.gblen()`方法计算字符串长度,并使用`.gbtrim()`方法来截取字符串并添加省略符。注意,在计算长度时,中文字符被视为两个字符长度。因此,当指定长度为10时,最多可以显示5个汉字。如果汉字...

    thinkphp中字符截取函数msubstr()用法分析

    // 以下是根据不同的字符编码来使用正则表达式截取字符串的代码... } ``` 在上述自定义的msubstr()函数中,首先会检查是否支持多字节字符串处理的函数,比如mb_substr()。如果支持,直接使用这些函数进行截取,...

    StringUtils工具类的使用

    - **abbreviate()**:截取字符串并添加省略号,如超过指定长度。 - **defaultString()**:如果字符串为空或null,则返回默认值。 - **deleteWhitespace()**:删除字符串中的所有空白字符。 - **substringBetween...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...

    JavaScript笔记

    必须用变量接收新字符串 | |--js中正则表达式语法:/正则表达式/[属性后缀]--其中属性后缀,g:全局匹配 i:忽略大小写(仅英文有效) 如果不适用模式匹配方式,将执行原文匹配 结果:如果正则表达式写错,也将...

    限制文字长度.rar

    例如,在Python中,可以使用`[:n]`切片操作来截取字符串的前n个字符,或者使用内置的`str[:n]`方法。在JavaScript中,可以使用`substring`或`slice`函数来达到同样的效果。而在Java中,我们可以使用`substring`方法...

    html显示长度较大的数据时的处理方法

    6. `fn:substring()` 函数:这是JSTL的字符串函数,用于截取字符串的一部分。在示例中,当字符串长度大于40时,截取前20个字符加上省略号"...",然后再加上最后21个字符,以显示大部分内容但保留尾部信息。如果字符...

    Android textView应用简单示例.zip源码资源下载

    在标签中提到了“android java apache”,这可能意味着源码中可能使用了Apache相关的库,如Apache Commons Lang库,它可以提供一些文本处理的辅助方法,如字符串截取、格式化等。在与TextView结合使用时,可以更高效...

    处理jsp显示文字过长问题的解决方法

    在示例代码中,使用了`&lt;c:if&gt;`标签和`fn:length`以及`fn:substring`函数来判断和截取字符串。`fn:length`是JSTL(JavaServer Pages Standard Tag Library)中的函数,用于计算字符串的长度。`fn:substring`函数则...

    jeecms3.X标签整理

    这个标签用于截取字符串,例如文章标题。`s` 参数是需要截取的字符串,`len` 是目标长度,`append` 是超出长度后添加的省略号或其他字符。 5. 栏目节点列表标签 `[#list channel.nodeList as n] ${n.name} [/#...

    JSTL常用语法介绍教程

    下面是一个简单的例子,创建一个用于截取字符串并添加省略号的标签: 1.1 首先创建一个Java类,如`StringTag.java`,实现所需功能: ```java package com.fyxx.bookstore.tag; public class StringTag { public ...

Global site tag (gtag.js) - Google Analytics