首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-09-21 
用 java来截取中文英文字符串,过多的用省略号显示用 java来截取中文英文字符串,过多的用省略号显示?需求:

用 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));

}

?

?

热点排行