/**
* 将给定的字符串按着给定的截取长度截取
* <br>
* 注意一个汉字占2个字节
* @param str
* @param subSLength
* @return 截取后的字符串
* @throws UnsupportedEncodingException
*/
public static String subStr(String str, int subSLength)
{
if (str == null){
return null;
}else if(str.getBytes().length<=subSLength){
return str;
}else{
int tempSubLength = subSLength;//截取字节数
String subStr = str.substring(0, subSLength);//截取的子串
int subStrByetsL;
try {
subStrByetsL = subStr.getBytes("GBK").length;
// 说明截取的字符串中包含有汉字
while (subStrByetsL > tempSubLength)
{//截取子串的字节长度
subStr = str.substring(0, --subSLength);
subStrByetsL = subStr.getBytes("GBK").length;
}
return subStr;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return null;
}
public static void main(String[] args){
System.out.println(subStr("ABC附近看到更多功夫",6));
}