jdk本身就自带获取字符串字节长度的api了,但字符串如果包含特殊符号或全半角符号或标点符号获取到的结果会有偏差,最好的证据就是新浪微博的字数统计了
// jdk自带的获取字节长度
//注意 getBytes()默认获取的是以文件编码格式的bytes,通常都是UTF-8(可以看api),不同编码格式的bytes,获取到的长度也不同,本人亲自测试过,建议获取有指定编码格式的bytes长度,如:getBytes("UTF-8")
int length = new String().getBytes().length;
若内容content中有换行符、制表符、回车符等符号,向去掉,可以使用下面代码:
// 清理掉内容中无用的换行符等内容,让获取到长度更精确 content = content.replaceAll("[\r\n\t]", "");
为了解决这个问题,完善找了一个解决方案