溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中String類型占幾個字節

發布時間:2020-06-25 11:38:04 來源:億速云 閱讀:4884 作者:Leah 欄目:編程語言

java中String類型占多少個字節?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

首先,char為Java的基本類型,基本類型所占的字節數是固定的,如int占4字節,double占8字節,這可以使得Java在不同的平臺上所占類型固定,很好地保證了Java的可移植性。因此,Java中char類型固定占2個字節。(注:char類型也可以存儲一個漢字)。

其次,String采用一種更靈活的方式進行存儲。在String中,一個英文字符占1個字節,而中文字符根據編碼的不同所占字節數也不同。在UTF-8編碼下,一個中文字符占3個字節;而使用GBK編碼時一個中文字符占2個字節。

測試代碼如下:

import java.io.UnsupportedEncodingException;

public class StrTest {

    public static void main(String[] args) throws UnsupportedEncodingException {
        String str1 = "hello";
        String str2 = "你好abc";

        System.out.println("utf-8編碼下'hello'所占的字節數:" + str1.getBytes("utf-8").length);
        System.out.println("gbk編碼下'hello'所占的字節數:" + str1.getBytes("gbk").length);

        System.out.println("utf-8編碼下'你好abc'所占的字節數:" + str2.getBytes("utf-8").length);
        System.out.println("gbk編碼下你好'你好abc'所占的字節數:" + str2.getBytes("gbk").length);
    }

}

輸出結果:

utf-8編碼下’hello’所占的字節數: 5
gbk編碼下’hello’所占的字節數: 5
utf-8編碼下’你好abc’所占的字節數: 9
gbk編碼下你好’你好abc’所占的字節數: 7

由此可見,對也String來說,一個英文字符固定占1個字節,而中文字符占2個(GBK編碼)或3個(UTF-8編碼)字節。也可使用此方法查看其它編碼的情況,此處不再一一贅述。

最后,基于String的這種特性,可以判斷一個字符串中是否包含中文,舉例如下:

public class StrTest {

    public static void main(String[] args) throws UnsupportedEncodingException {
        searchChineseCharacter("Good morning");
        searchChineseCharacter("hello 早上好");
    }

    //找出一個字符串中的漢字
    public static void searchChineseCharacter(String str){
        //正則表達式,用于匹配中文字符
        String regex = "[\u4e00-\u9fa5]";

        //如果str的長度和其所占字節數不等,說明包含中文
        if (str.length() != str.getBytes().length){
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(str);
            System.out.print("'" + str + "' 中的漢字為:");

            while (matcher.find()){
                System.out.print(matcher.group());
            }
        }

        else {
            System.out.println("'" + str + "' 中無漢字");
        }
    }

}

輸出結果:

‘Good morning’ 中無漢字
‘hello 早上好’ 中的漢字為:早上好

關于java中String類型所占字節數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女