java中字符串如何计算字节长度

这篇文章主要介绍了java中字符串如何计算字节长度,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java字符串计算字节长度

通常,计算字符串长度大小方法很多,熟悉的有将字符串写入文件,然后读取文件大小即可。这种方式还是比较麻烦的。

1.方法一

需要先拿到字符串===》然后再写入文件===》再读取文件===》统计文件字节流长度===》可以拿到字符串的字节大小

2.方法二

        //编码格式有 UTF-8 GB2312 GBK UTF-16 UTF-32
        try {
            int length = "测试不同编码格式的字节长度".getBytes("编码格式").length;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

通过String的getBytes()方法去统计它的length,这样是最方便的,但是有个不好之处就是设置编码格式,这个还是有很大影响的,采用那种编码格式计算计算出来的字节长度不一样,所以这个比较重要。

能想到的比较好的方法,就是将编码格式设置在配置文件中,这样不影响字符串的字节长度计算,也比较灵活,采用那种编码格式,就设置成什么的,后期好维护。

3.代码中运用

java截取字符串的指定字节数长度

由于Java字符串的length计算的是字符长度,而数据库的限制长度是字节数,为了防止报错,可以在Java程序中截取字符串的指定字节数长度

    public static String getLenString(String content, int len) {
        if (content == null || content.length() == 0) {
            return content;
        }
        byte[] bytes = content.getBytes();
        if (bytes.length > len) {
            int tempLen = new String(bytes, 0, len).length();
            content = content.substring(0, tempLen);
            // 防止最后一个字符的长度不是一个字节数
            if (content.getBytes().length > len) {
                content = content.substring(0, tempLen - 1);
            }
        }
        return content;
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程学习网。

本文标题为:java中字符串如何计算字节长度