java实现截取6个汉字字母数字
项目中使用到需要截取6个字(12个字母或数字),解决方法如下:
/**
*
* @方法名称:getWordCount
* @内容摘要: <截取输入字符串 大于6个后显示...>
* @param str
* @return String
* @exception
* @author:
* @创建日期:2016年9月5日-下午1:30:41
*/
public static String getWordCount(String str) {
try {
String symbol = "...";
int len = 10;
int counterOfDoubleByte = 0;
byte b[] = str.getBytes("GBK");
if (b.length <= len)
return str;
for (int i = 0; i < len; i++) {
if (b[i] < 0)
counterOfDoubleByte++;
}
if (counterOfDoubleByte % 2 == 0)
return new String(b, 0, len, "GBK") + symbol;
else
return new String(b, 0, len - 1, "GBK") + symbol;
} catch (UnsupportedEncodingException e) {
logger.error("截取字符串getWordCount异常:", e);
return "";
}
}
运行结果:
一个数字或字母是一个字节,一个汉字是两个字节