您的位置:首页 > 编程语言 > Java开发

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: