Java中英文混排字符串字节个数计算
2016-03-16 14:47
567 查看
Java中英文混排字符串字节个数计算:
==============================================
用户昵称验证用例:
/** 双字节字符正则表达达*/ private static final String DOUBLE_CHAR_REG = "[^\\x00-\\xff]"; /** * 计算字符串字节长度 * @param str */ public static int countStringByteLength(String str){ int len = str.length(); Matcher matcher = Pattern.compile(DOUBLE_CHAR_REG).matcher(str); while (matcher.find()) { len++;//双字节长度+1 } return len; }
==============================================
用户昵称验证用例:
/** "昵称验证"正则表达式*/ private static final String NICKNAME_REG = "^.{6,24}$"; /** "昵称验证"字符个数,为了实现中文匹配两个字符*/ private static final int NICKNAME_MINLEN = 6, NICKNAME_MAXLEN = 24; /** * 昵称验证 * @param nickname * @return */ public static boolean isNickname(String nickname) { if (isEmpty(nickname)) { return false; } //正则表达式匹配字符个数 if (!nickname.matches(NICKNAME_REG)) { //中英文混排匹配,中文计数+1 int len = countStringByteLength(nickname); if (len >= NICKNAME_MINLEN && len <= NICKNAME_MAXLEN) { return true; } return false; } return true; } /** * 检测字符串是否为空(1.null,2."",3.去除两边空格为"") * @param str * @return */ public static boolean isEmpty(String str){ if(str== null)return true; if(str.isEmpty())return true; if(str.trim().isEmpty())return true; return false; }
相关文章推荐
- java 字符串截取
- SSH中 整合spring和proxool 连接池
- Java NIO系列教程(十) Java NIO DatagramChannel
- Java二分插入排序
- Java NIO系列教程(九) ServerSocketChannel
- 如何在SpringMVC中获取request对象
- java错误
- java 编译.java文件
- Java学习笔记--HashMap
- Java过滤器与SpringMVC拦截器之间的关系与区别
- java nio
- 用JAVA生成老电影海报
- 工具类——java在图片指定位置写字
- java给图片添加小图片和文本信息
- java.io.PrintWriter 中 write() 与 print() 的区别
- Thinking In Java 读书笔记
- JAVA基础拾遗
- eclipse安装lombok插件
- [JAVA关键字] synchronized
- Spring对AOP的支持