Java中英文字母漢字混合字符長(zhǎng)度值計(jì)算

說(shuō)明

有時(shí)候,需要對(duì)字符串長(zhǎng)度進(jìn)行限制,如果使用 Validate 中的 @Length(max=100) 方式進(jìn)行限制校驗(yàn),此時(shí)每個(gè)字符都算作一個(gè)長(zhǎng)度。
如果想要自定義字符長(zhǎng)度的計(jì)算,例如:每個(gè)中文算作一個(gè)字符,數(shù)字、英文算作0.5個(gè)字符,就需要手動(dòng)定義。
可以使用下面的方式。

    /**
     * 計(jì)算字符串內(nèi)容字符長(zhǎng)度
     * 一個(gè)中文相當(dāng)于兩個(gè)英文
     */
    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;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容