您的位置:首页 > 其它

字符串长度及截取(中文2字符,英文1字符)

2016-08-24 09:26 821 查看
1、计算字符串长度,中文2个字符,英文1个字符

public static int realLen(String str)
{
int m = 0;
char arr[] = str.toCharArray();
for(int i=0;i<arr.length;i++)
{
char c = arr[i];
if((c >= 0x0391 && c <= 0xFFE5)) //中文字符
{
m = m + 2;
}
else if((c>=0x0000 && c<=0x00FF)) //英文字符
{
m = m + 1;
}
}
return m;
}

2、截取字符串,中文2个字符,英文1个字符

public static String subRealStr(String str, int subSLength) {
if (str == null) return "";
try {
int tempSubLength = subSLength;//截取字节数
String subStr = str.substring(0, str.length()<subSLength ? str.length() : subSLength);//截取的子串
int subStrByetsL = subStr.getBytes("GBK").length;//截取子串的字节长度
//int subStrByetsL = subStr.getBytes().length;//截取子串的字节长度
// 说明截取的字符串中包含有汉字
while (subStrByetsL > tempSubLength){
int subSLengthTemp = --subSLength;
subStr = str.substring(0, subSLengthTemp>str.length() ? str.length() : subSLengthTemp);
subStrByetsL = subStr.getBytes("GBK").length;
}
return subStr;
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息