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判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。