在《从后向前截取指定长度的字符串》中介绍了如何截取字符串,本文介绍如何统计字符串的字节长度。

  1. import org.slf4j.Logger;
  2. import org.slf4j.LoggerFactory;
  3.  
  4. import java.io.UnsupportedEncodingException;
  5.  
  6. public class GetLength {
  7. private static final Logger logger = LoggerFactory.getLogger(GetLength.class);
  8.  
  9. // 编码方式
  10. private static final String ENCODE_UTF = "UTF-8";
  11.  
  12. /**
  13. * 计算中英文字符串的字节长度 <br/>
  14. * 一个中文占3个字节
  15. *
  16. * @param str
  17. * @return int 字符串的字节长度
  18. */
  19. public static int getLength(String str) {
  20. if (str == null || str.length() == 0) {
  21. return 0;
  22. }
  23. try {
  24. return str.getBytes(ENCODE_UTF).length;
  25. } catch (UnsupportedEncodingException e) {
  26. logger.error("计算中英文字符串的字节长度失败,", e);
  27. }
  28. return 0;
  29. }
  30.  
  31. /**
  32. * 计算中英文字符串的字节长度
  33. *
  34. * @param str
  35. * @return int
  36. */
  37. public static int getStrLength(String str) {
  38. if (str == null || str.length() == 0) {
  39. return 0;
  40. }
  41. int len = 0;
  42. for (int i = 0, j = str.length(); i < j; i++) {
  43. //UTF-8编码格式中文占三个字节,GBK编码格式 中文占两个字节 ;
  44. len += (str.charAt(i) > 255 ? 3 : 1);
  45. }
  46. return len;
  47. }
  48.  
  49. public static void main(String[] args) {
  50. String str = "农业银行 3Wiener,支付密";
  51. System.out.println(getLength(str));
  52. System.out.println(getStrLength(str));
  53. }
  54.  
  55. }

Java 按字节计算字符串的长度的更多相关文章

  1. Java 按字节获得字符串(中文)长度

    引自:http://songjianyong.iteye.com/blog/1552973 package cn.com.songjy.test; import java.io.Unsupported ...

  2. 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}

    应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace(/[^\x00-\xff] ...

  3. PHP计算字符串的长度

    <?php /** * 计算字符串的长度(汉字按照两个字符计算) * * @param string $str 字符串 * * @return int */ function str_len($ ...

  4. JS计算字符串的长度

    最近项目上经常要用到计算字符串的长度的问题,有时需要按照byte进行计算长度,所以我就想在页面上用js实现,于是就到网上查了相关的资料,发现确实有很多的版本,这里给出两个比较好用的. //方法一:逐个 ...

  5. 计算字符串的长度.len,RuneCountInString

    内置函数len(),可以返回字符串/数组/切片/map/channel的长度. unicode/utf8包 函数:RuneCountInString(输入一个字符串),返回int类型的字符串长度.由于 ...

  6. Java按字节截取字符串(GBK编码、UTF-8编码实现)

    package FileDemo; import java.io.IOException; public class CutStringTest { /** * @param args * @thro ...

  7. java按照字节切割字符串,解决汉字的问题

    编写一个截取字符串的函数,输入为一个字符串,截取开始地址,截取字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个, 如“我ABC”,0,4,应该截为“我AB”,输入“我ABC汉DEF”,1, ...

  8. Java通过字节分割字符串

    一.题目描述: 一道Java笔试题.将字符串按给定的字节数进行分割,输出分割后的字符串.要求汉字不能进行拆分,如“a中国”不能拆分成“a+中的一半”. 二.解题思路: 首先利用String类的subs ...

  9. JS计算字符串实际长度

    http://www.qttc.net/201207136.html // UTF8字符集实际长度计算 function getStrLeng(str){ var realLength = 0; va ...

随机推荐

  1. bat 设置多个静态ip

    @echo off REM 本地连接名称 set NetName="本地连接 2" REM 默认IP netsh interface ipv4 set address name=% ...

  2. atan、atanf、atanl、atan2、atan2f、atan2l

    很久不发博客了,今天在园中计算各种角,于是复习下fan正切函数 计算x的反正切值 (atan.atanf和 atanl) 或y/x 的反正切值 (atan2.atan2f和 atan2l).     ...

  3. Math对象的一些方法

    ceil(n) 返回n向上取整的最近的整数floor(n) 返回n向下取整到最近的整数max(a,b,c...) 返回最大值min(a,b,c...) 返回最小值round(n) 返回n四舍五入的最近 ...

  4. 虚拟机NAS存储的安装

    1.下载一款免费的NAS系统fressNAS 下载网址;https://www.freenas.org/download/ 2.选择配置好虚拟机(内存设置8G最好,选择桥接) 不要做任何操作等待进入安 ...

  5. /bin/false和/sbin/nologin的区别

    /bin/false是最严格的禁止login选项,一切服务都不能用./sbin/nologin只是不允许login系统 其中树莓派的/sbin/nologin文件在/usr/sbin/nologin小 ...

  6. Kotlin枚举与委托深入详解

    枚举: 基本上跟Java的差不多,这里就过一遍既可,如下: 还可以接收参数,如下: 枚举还可以定义方法,如下: 看下错误提示: 所以可以这样: 然后咱们再冒号之前定义对象,如下: 下面来使用一下: 当 ...

  7. python_并发编程——多进程的第二种启动方式

    1.多进程的第二种启动方式 import os from multiprocessing import Process # 创建一个自定义类,继承Process类 class MyProcess(Pr ...

  8. 十五.ProtoBuf3的基础总结

    转自: https://blog.csdn.net/u011518120/article/details/54604615 定义一个消息类型 指定字段类型 分配标识号 指定字段规则 添加更多消息类型 ...

  9. service worker(一)之离线应用

    serviceWork.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  10. 为何基于tcp协议的通信比基于udp协议的通信更可靠?

    tcp协议一定是先建好双向链接,发一个数据包要得到确认才算发送完成,没有收到就一直给你重发:udp协议没有链接存在,udp直接丢数据,不管你有没有收到. TCP的可靠保证,是它的三次握手双向机制,这一 ...