Java中英文字母汉字混合字符长度值计算

说明

有时候,需要对字符串长度进行限制,如果使用 Validate 中的 @Length(max=100) 方式进行限制校验,此时每个字符都算作一个长度。
如果想要自定义字符长度的计算,例如:每个中文算作一个字符,数字、英文算作0.5个字符,就需要手动定义。
可以使用下面的方式。

    /**
     * 计算字符串内容字符长度
     * 一个中文相当于两个英文
     */
    public Float calcCharacterLength(String checkStr) {
        try {
            if (null == checkStr || checkStr.length == 0) {
                return 0;
            }
            String newString = new String(checkStr.getBytes("GB2312"), StandardCharsets.ISO_8859_1);
            float strLen = (float) (newString.length() / 2.0);
            return strLen ;
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

你可能感兴趣的:(Java中英文字母汉字混合字符长度值计算)