在Java中按字节获得字符串长度的两种方法
本文为转载,转载地址:http://www.blogjava.net/nokiaguy/archive/2010/04/11/317982.html
由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串的长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,如果是汉字或其他全角字符,Ascii会大于255。因此,可以编写如下的方法来获得以字节为单位的字符串长度。
public int getWordCount(String s){int length = 0;for(int i = 0; i < s.length(); i++){int ascii = Character.codePointAt(s, i);if(ascii >= 0 && ascii <=255)length++;elselength += 2;}return length;}
当然,也可以采用正则表达式来简化上面的方法,代码如下:
public int getWordCount(String s){s = s.replaceAll("[^\\x00-\\xff]", "**");int length = s.length();return length;}
上面代码的基本原理是将字符串中所有的非标准字符(双字节字符)替换成两个标准字符(**,或其他的也可以)。这样就可以直接例用length方法获得字符串的字节长度了。
在Java中按字节获得字符串长度的两种方法相关推荐
- java中char类型转换成int类型的两种方法
java中char类型转换成int类型的两种方法 方法一: 第一种利用Integer包装类的方法Integer.parseInt Copychar ch = '9'; if (Character.is ...
- C++求字符串长度的两种方法
针对于string类型的,可以采用strlen 针对于wstring类型的,可以采用_tcslen方法 实例代码: //字符串测试Unicode和ansi void strControl() {std ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- Shell脚本中计算字符串长度的5种方法
这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...
- java中domain什么意思_java解析URL中domain、端口和协议的两种方法
java解析URL中domain.端口和协议的两种方法 Java代码 收藏代码 @Test public void parseDomain() throws IOException { for (in ...
- java中n次方怎么表示_n次方_word中输入N次方的符号的两种方法
为了打编程题的题目,而题目里面有X²,但我不懂,只好去网上查了,经过我的多方查找,最后总结了一下几种方法.下面一起和学习啦小编来学习一下输入N次方的符号吧,希望对你有帮助! 输入N次方的符号方法一 1 ...
- 在Java中实现SFTP协议文件传输的两种解决方案
在Java中实现SFTP协议文件传输的两种解决方案 1.1 背景 1.2 关于 FTP /FTPS 1.3 关于SFTP 解决方案一:使用 JSch 库 解决方案二:使用sshj 库 这篇博文来聊聊在 ...
- mysql中逗号前的字符串_MySql逗号拼接字符串查询的两种方法
下面两个函数的使用和FIND_IN_SET一样,使用时只需要把FIND_IN_SET换成FIND_PART_IN_SET或FIND_ALL_PART_IN_SET 例如某字段里是为1,2,3,4,5 ...
- python获取绝对路径_python3中获取文件当前绝对路径的两种方法
方法1: import sys print(sys.argv) 得到文件当前绝对路径字符串的一个列表 ['D:/pycharm/PracticeProject/ClientServerNetworki ...
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
最新文章
- 五子棋c语言策划书活动内容,五子棋比赛策划书
- 网管日志-06.07.21
- TP v5中环境变量在项目中的应用
- Windows下C/C++获取当前系统时间
- VMware中虚拟机与主机不能ping通解决办法
- asp.net core 自定义基于 HttpContext 的 Serilog Enricher
- 同步方法 调用异步防范_.NET Web应用中为什么要使用async/await异步编程?
- [css] 在页面中的应该使用奇数还是偶数的字体?为什么呢?
- Linux下apache与tomcat完美整合笔记
- 【树莓派搭建个人网站】花生壳内网穿透
- iOS开发UI篇—控制器的创建
- 线性代数及其应用(第三版)1.3节习题解答
- 主引導记录(MBR)
- 【微服务】微服务架构图
- goland 注释模板_【精品】金工实习心得体会模板合集5篇
- docker修改nginx容器主页内容信息【还能这样操作?】
- 2020研究洞察:新消费品牌的8大增长驱动力
- linux命令返回结果保存到文件,Linux终端运行命令及结果同时保存入文件方法总结...
- python常用的表达式有关系表达式_数学关系式 表示成正确的 Python表达式为_________。_学小易找答案...
- IT信息订阅 RSS源列表