直接贴代码!
JAVA
public String getLenStr(String str,int len){
String returnStr="";
int str_length = 0;
int str_len = 0;
String str_cut = new String();
str_len = str.length();
for(int i = 0;i<str_len;i++){
char a = str.charAt(i);
str_length++;
if(escape(a+"").length() > 4)
{
//中文字符的长度经编码之后大于4
str_length++;
}
str_cut = str_cut.concat(a+"");
if(str_length>=len)
{
str_cut = str_cut.concat("...");
returnStr=str_cut;
break;
}
}
//如果给定字符串小于指定长度,则返回源字符串;
if(str_length<len){
returnStr=str;
}
return returnStr;
}
private static String escape (String src) {
int i;
char j;
StringBuffer tmp = new StringBuffer();
tmp.ensureCapacity(src.length()*6);
for (i=0;i<src.length() ;i++ ) {
j = src.charAt(i);
if (Character.isDigit(j) || Character.isLowerCase(j) || Character.isUpperCase(j))
tmp.append(j);
else if (j<256) {
tmp.append( "%" );
if (j<16)
tmp.append( "0" );
tmp.append( Integer.toString(j,16) );
} else {
tmp.append( "%u" );
tmp.append( Integer.toString(j,16) );
}
}
return tmp.toString();
}
JS
function cutstr(str, len) {
var str_length = 0;
var str_len = 0;
str_cut = new String();
str_len = str.length;
for (var i = 0; i < str_len; i++) {
a = str.charAt(i);
str_length++;
if (escape(a).length > 4) {
//中文字符的长度经编码之后大于4
str_length++;
}
str_cut = str_cut.concat(a);
if (str_length >= len) {
str_cut = str_cut.concat("...");
return str_cut;
}
}
//如果给定字符串小于指定长度,则返回源字符串;
if (str_length < len) {
return str;
}
}
本文提供了一种用Java和JavaScript实现的字符串截取方法,能够处理包括中文在内的多种字符集,并在超过设定长度时添加省略号。代码适用于网页或应用程序中对字符串长度进行限制的需求。
506

被折叠的 条评论
为什么被折叠?



