旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java中字符串占几个字节【JAVA教程】,java,字符串,字节

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:49评论:0


导读:起首,char为Java的基础范例,基础范例所占的字节数是牢固的,如int占4字节,double占8字节,这能够使得Java在差别的平台上所占范例牢固,很好地保证了Java的可...

起首,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入门教程

以上就是java中字符串占几个字节的细致内容,更多请关注ki4网别的相干文章!

标签:java字符串字节


欢迎 发表评论: