java判断中文字符串长度的简单实例
话不多说,上代码:
/**
*获取字符串的长度,如果有中文,则每个中文字符计为2位
*@paramvalue指定的字符串
*@return字符串的长度
*/
publicstaticintlength(Stringvalue){
intvalueLength=0;
Stringchinese="[\u0391-\uFFE5]";
/*获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1*/
for(inti=0;i<value.length();i++){
/*获取一个字符*/
Stringtemp=value.substring(i,i+1);
/*判断是否为中文字符*/
if(temp.matches(chinese)){
/*中文字符长度为2*/
valueLength+=2;
}else{
/*其他字符长度为1*/
valueLength+=1;
}
}
returnvalueLength;
}
/**
*得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1
*@paramStrings需要得到长度的字符串
*@returnint得到的字符串长度
*/
publicstaticintlength(Strings){
if(s==null)
return0;
char[]c=s.toCharArray();
intlen=0;
for(inti=0;i<c.length;i++){
len++;
if(!isLetter(c[i])){
len++;
}
}
returnlen;
}
/**
*得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为1,英文字符长度为0.5
*@paramStrings需要得到长度的字符串
*@returnint得到的字符串长度
*/
publicstaticdoublegetLength(Strings){
doublevalueLength=0;
Stringchinese="[\u4e00-\u9fa5]";
//获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1
for(inti=0;i<s.length();i++){
//获取一个字符
Stringtemp=s.substring(i,i+1);
//判断是否为中文字符
if(temp.matches(chinese)){
//中文字符长度为1
valueLength+=1;
}else{
//其他字符长度为0.5
valueLength+=0.5;
}
}
//进位取整
returnMath.ceil(valueLength);
}
根据长度截取内容,区分中英文:
/**
*截取字符长度,区分中英文
*
*@paramabc字符串内容
*@paramlen截取长度
*@return
*/
publicstaticStringsubStr(Stringabc,intlen){
if(TextUtils.isEmpty(abc)||len<=0)
return"";
StringBufferstringBuffer=newStringBuffer();
intsum=0;
char[]chars=abc.toCharArray();
for(inti=0;i<chars.length;i++){
if(sum>=(len*3)){
break;
}
charbt=chars[i];
if(bt>64&&bt<123){
stringBuffer.append(String.valueOf(bt));
sum+=2;
}else{
stringBuffer.append(String.valueOf(bt));
sum+=3;
}
}
returnstringBuffer.toString();
}
以上这篇java判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。