可能会有一些需求,要求限制文本的字数。包括中英文和数字。上代码:
这个方法可以直接拷贝使用。我的项目中就一直用这个方法,好用。
/**
* 限制文本字符
*
* @param inputStr 输入的文字
* @param limitCount 文字字符数上限
* @return
*/
public static String getLimitSubstring(String inputStr, int limitCount) {
if (TextUtils.isEmpty(inputStr)) {
return null;
}
int orignLen = inputStr.length();
int resultLen = 0;
String temp = null;
for (int i = 0; i < orignLen; i++) {
temp = inputStr.substring(i, i + 1);
try {
// 3 bytes to indicate chinese word,1 byte to indicate english
// word ,in utf-8 encode
if (temp.getBytes("utf-8").length == 3) {
resultLen += 2;
} else {
resultLen++;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (resultLen > limitCount) {
return inputStr.substring(0, i) + "...";
}
}
return inputStr;
}