判断字符串长度方法(数字字母占1个字符,汉字2个)


用于拿取字符串长度,一般的字符串.length()方法不能分辨字母数字和汉字占的字符串长度。

 

package com.iflytek.oss.common.utils;

/**
 * <p><字符串工具类>
 * <p><字符串工具类>
 * <p>
 * <p>Copyright (c) 2018, taoxue2@iflytek.com All Rights Reserve</p>;
 * <p>Company : 科大讯飞</p>
 *
 * @author taoxue2
 * @version [V1.0, ]
 * @see [相关类/方法]
 */
public class StringUtil {
    /**
     * 获取字符串的长度,如果有中文,则每个中文字符计为2位
     * @param value 指定的字符串
     * @return 字符串的长度
     */
    public static int length(String value) {
        int valueLength = 0;
        String chinese = "[\u0391-\uFFE5]";
       /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
        for (int i = 0; i < value.length(); i++) {
           /* 获取一个字符 */
            String temp = value.substring(i, i + 1);
           /* 判断是否为中文字符 */
            if (temp.matches(chinese)) {
               /* 中文字符长度为2 */
                valueLength += 2;
            } else {
               /* 其他字符长度为1 */
                valueLength += 1;
            }
        }
        return valueLength;
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM