需求:最近在做仿新浪微博的项目,遇到关于文本编辑框内文字的处理问题,时时的监听文本框输入了多少字符,当时没有考虑到输入的内容问题,现在要求是一个汉字 == 两个英文字母,标点符号也区分英文和中文,一个中文标点== 两个英文标点。
解决方式:通过输入文本所占的字节数去判断
封装了一个方法:
- /**
- * 计算微博内容的长度 1个汉字 == 两个英文字母所占的长度 标点符号区分英文和中文
- * @param c 所要统计的字符序列
- * @return 返回字符序列计算的长度 返回的是字符串全转换为汉字所占的长度
- */
- public static long calculateWeiboLength(CharSequence c) {
- double len = 0;
- for (int i = 0; i < c.length(); i++) {
- int temp = (int)c.charAt(i);
- if (temp > 0 && temp < 127) { //英文
- len += 0.5;
- }else{
- len ++;
- }
- }
- return Math.round(len);
- }