Java 按字節計算字符串的長度


   在《 從后向前截取指定長度的字符串》中介紹了如何截取字符串,本文介紹如何統計字符串的字節長度。
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.UnsupportedEncodingException;


public class GetLength {
    private static final Logger logger = LoggerFactory.getLogger(GetLength.class);


    // 編碼方式
    private static final String ENCODE_UTF = "UTF-8";


    /**
     * 計算中英文字符串的字節長度 <br/>
     * 一個中文占3個字節
     *
     * @param str
     * @return int 字符串的字節長度
     */
    public static int getLength(String str) {
        if (str == null || str.length() == 0) {
            return 0;
        }
        try {
            return str.getBytes(ENCODE_UTF).length;
        } catch (UnsupportedEncodingException e) {
            logger.error("計算中英文字符串的字節長度失敗,", e);
        }
        return 0;
    }




    /**
     * 計算中英文字符串的字節長度
     *
     * @param str
     * @return int
     */
    public static int getStrLength(String str) {
        if (str == null || str.length() == 0) {
            return 0;
        }
        int len = 0;
        for (int i = 0, j = str.length(); i < j; i++) {
            //UTF-8編碼格式中文占三個字節,GBK編碼格式 中文占兩個字節 ;
            len += (str.charAt(i) > 255 ? 3 : 1);
        }
        return len;
    }


    public static void main(String[] args) {
        String str = "農業銀行 3Wiener,支付密";
        System.out.println(getLength(str));
        System.out.println(getStrLength(str));
    }
    
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM