javaSE-基础篇-如何获得中文英文混合字符串的字节长度

在String类中,有这么一个方法:

public byte[] getBytes():该方法将字符串按照默认编码格式转为byte数组,对于简体中文win系统来说,默认编码格式就是GBK。

package com.anjoyo.day01;
import java.io.UnsupportedEncodingException;
public class StringTest {
    public static void main(String[] args) {
        String strSrc = "这是string";
        System.out.println(strSrc.getBytes().length);
        try {
            System.out.println(strSrc.getBytes("GBK").length);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

两者输出结果一样:10。

从中我们还可以看出,对于第二种getBytes的重载方法,我们可以指定编码格式,从而得到该编码格式的字节形式。

package com.anjoyo.day01;
import java.io.UnsupportedEncodingException;
public class StringTest {
    public static void main(String[] args) {
        String strSrc = "这是string";
        System.out.println(strSrc.getBytes().length);// 10
        try {
            System.out.println(strSrc.getBytes("UTF-8").length);// 12
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

可以看出:对于GBK编码,汉字占2个字节,对于UTF-8来说,汉字占3个字节。这和我们的常识是一致的。

你可能感兴趣的:(编码格式,字节,中英文字符串)