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; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。