我也说说字符串长度问题
来源:互联网 发布:数禾科技 知乎 编辑:程序博客网 时间:2024/04/30 00:15
背景:
int len = "周华健".length();//3
但是你把这个3个字复制到UE里面,可以看到是6.
对于含有中文的字符串取长度时,仅仅用 “周华健”.length()是不够的,因为编码的不同,导致长度计算会不合要求。
注意:讨论编码时其实有2个地方
1,你的文件本身的编码。你可以在eclipse下查看文件属性,这个编码决定了你写出来内容的真正编码
2,在内存中运行时,运行环境所在的编码格式。比如你可以使用new String("周华健","UTF-8")。
所有在讨论编码或者乱码时,必须先检查文件本身的编码格式,最常见的就是你 新建了个xml格式文件,里面写了明明是UTF-8,但是读取后乱码,这是你就要检查文件本身的编码。然后在读取时进行编码转换。
如果要String类型计算长度是,其实只是返回该对象的count属性,这个属性是final的。就算你更改了这个Stirng对象的编码,也不见得他的长度变化了。有人总喜欢说你使用某种编码格式后再计算长度,这是不对的。
计算长度时 可以用 getBytes()读取长度,字符占1位,中文占2位,UTF-8编码下的中文占3位(常规下占3位,我觉得另有乾坤),这样算出来的是比较合理的。
- 我也说说字符串长度问题
- 我也说说房价
- 我也说说盗版
- 我也说说“商业模式”
- 我也说说“商业模式”
- 我也说说大盘!
- 我也说说CSDN
- 我也说说c++
- 我也说说bogomips
- 我也说说ThreadLocal
- 我也说说中文分词(上:基于字符串匹配)
- 我也说说汉语言编程
- 关于自信 我也说说
- 我也说说《变形金刚》2
- 我也说说产品经理
- 也说说信息过载问题
- 我也说说The Object Primer
- 我也说说Tomcat的配置
- iphone 重用机制
- 封装C++ enum ,并设置enum 的名字
- ubuntu启动到字符界面
- GCC源码分析(一)——介绍与安装
- Nginx学习笔记
- 我也说说字符串长度问题
- 收藏的博客列表
- X220 底坐
- cursor在IE和firefox中兼容
- FTK应用程序编程接口(API)手册-1
- python斐波那契数列
- 技术博客收录
- C#与C++的区别总结
- 对自己做事方面的反思