/**
* @desc 按照需求长度,截取源数据最多到所需长度的字符串(如出现不足一个汉字的部分会被截取掉)
* @param sourceStr 源字符串信息
* @param maxLen 截取字符长度
* @return 返回字符串
*/
private String splitShowStr(String sourceStr,int maxLen){
String retStr = "";
byte[] strByte = sourceStr.getBytes();
int strLen = strByte.length;
if(strLen > maxLen){ //汉字在按照字节拆分后,转换为int每一位必然小于0
int tmpChar = 0;
int count = 0;
maxLen = maxLen - 3;
for(int i=0;i<maxLen;i++){
tmpChar = (int) strByte[i];
if(tmpChar < 0){
count ++;
}
}
if(count%3 != 0){ //汉字数量出现半个字,截掉超出部分
maxLen = maxLen - count%3;
retStr = new String(strByte,0,maxLen);
}else{
retStr = new String(strByte,0,maxLen);
}
retStr = retStr + "...";
}else{
retStr = sourceStr;
}
return retStr;
}