用 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));
}
分享到:
相关推荐
这个问题在文档标题“Java精确截取字符串.doc”中提到,描述也指出了解决字符串过长并需要添加省略号的需求。 以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```...
"截取字符串 省略用...表现 grivdview截取数据用..表现出来"这个标题和描述暗示了如何在数据显示时对过长的文本进行截取,并在末尾添加省略号(...)以表示被截断的部分。这种需求通常出现在数据表格、列表视图或者...
在编程领域,截取字符串是一项基础且常用的操作。在标题为“怎么截取字符串的小程序”的知识主题中,我们将深入探讨如何在不同的编程语言中实现这一功能,以及它在实际应用中的价值。描述中提到的方法是通过确定字符...
"字符串 省略号 适配"这个主题主要涉及到如何在显示有限空间内的文本时,对过长的字符串进行截断并添加省略号,以达到良好的用户界面(UI)展示效果。这种技术通常用于列表项、标签、标题等元素,确保信息清晰且不被...
在Java编程中,有时我们需要对字符串进行精确的截取,以适应特定的显示需求或处理长文本。在上述内容中,主要讨论了两种常见的Java字符串截取方法。 第一种方法是使用`substring()`函数,这是一个基础且直接的字符...
在Python中,我们可以使用切片操作来截取字符串。例如,`string[start:end]`将返回从索引`start`到`end-1`的子串。如果省略`start`,则默认为0;如果省略`end`,则默认到字符串末尾。 3. **JavaScript中的字符串...
虽然JSP也可以处理字段太长的问题,但通常需要编写更多代码,如使用`substring()`方法截取字符串、判断长度、插入省略号等。这种方法增加了代码复杂度,不适用于动态内容或频繁变化的文本。同时,JSP更适合处理...
在Java编程语言中,字符串是极其重要且频繁使用的数据类型。为了方便开发人员对字符串进行各种操作,Java提供了一系列的内置工具类,如`String`类本身的静态方法以及`org.apache.commons.lang3.StringUtils`这样的第...
以上代码展示了如何使用`.gblen()`方法计算字符串长度,并使用`.gbtrim()`方法来截取字符串并添加省略符。注意,在计算长度时,中文字符被视为两个字符长度。因此,当指定长度为10时,最多可以显示5个汉字。如果汉字...
// 以下是根据不同的字符编码来使用正则表达式截取字符串的代码... } ``` 在上述自定义的msubstr()函数中,首先会检查是否支持多字节字符串处理的函数,比如mb_substr()。如果支持,直接使用这些函数进行截取,...
- **abbreviate()**:截取字符串并添加省略号,如超过指定长度。 - **defaultString()**:如果字符串为空或null,则返回默认值。 - **deleteWhitespace()**:删除字符串中的所有空白字符。 - **substringBetween...
字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...
必须用变量接收新字符串 | |--js中正则表达式语法:/正则表达式/[属性后缀]--其中属性后缀,g:全局匹配 i:忽略大小写(仅英文有效) 如果不适用模式匹配方式,将执行原文匹配 结果:如果正则表达式写错,也将...
例如,在Python中,可以使用`[:n]`切片操作来截取字符串的前n个字符,或者使用内置的`str[:n]`方法。在JavaScript中,可以使用`substring`或`slice`函数来达到同样的效果。而在Java中,我们可以使用`substring`方法...
6. `fn:substring()` 函数:这是JSTL的字符串函数,用于截取字符串的一部分。在示例中,当字符串长度大于40时,截取前20个字符加上省略号"...",然后再加上最后21个字符,以显示大部分内容但保留尾部信息。如果字符...
在标签中提到了“android java apache”,这可能意味着源码中可能使用了Apache相关的库,如Apache Commons Lang库,它可以提供一些文本处理的辅助方法,如字符串截取、格式化等。在与TextView结合使用时,可以更高效...
在示例代码中,使用了`<c:if>`标签和`fn:length`以及`fn:substring`函数来判断和截取字符串。`fn:length`是JSTL(JavaServer Pages Standard Tag Library)中的函数,用于计算字符串的长度。`fn:substring`函数则...
这个标签用于截取字符串,例如文章标题。`s` 参数是需要截取的字符串,`len` 是目标长度,`append` 是超出长度后添加的省略号或其他字符。 5. 栏目节点列表标签 `[#list channel.nodeList as n] ${n.name} [/#...
下面是一个简单的例子,创建一个用于截取字符串并添加省略号的标签: 1.1 首先创建一个Java类,如`StringTag.java`,实现所需功能: ```java package com.fyxx.bookstore.tag; public class StringTag { public ...