計算含有中文的字符串長度

/**
     * 獲得一個字符串的長度,顯示的長度,一個漢字或日韓文長度爲2,英文字符長度爲1
     * @param s 須要獲得長度的字符串
     * @return int 獲得的字符串長度
     */
    public static int getLength(String s) {
        double valueLength = 0;
        String chinese = "[\u4e00-\u9fa5]";
        // 獲取字段值的長度,若是含中文字符,則每一箇中文字符長度爲2,不然爲1
        for (int i = 0; i < s.length(); i++) {
            // 獲取一個字符
            String temp = s.substring(i, i + 1);
            // 判斷是否爲中文字符
            if (temp.matches(chinese)) {
                // 中文字符長度爲2
                valueLength += 2;
            } else {
                // 其餘字符長度爲1
                valueLength += 1;
            }
        }
        //進位取整
        return  (int)Math.ceil(valueLength);
    }
相關文章
相關標籤/搜索