判断一个字符是双字节还是单字节
2006-11-03 08:26
369 查看
对于字符串的处理,经常会遇到需要判断字符是双字节还是单字节(或者全角和半角)的情况,因为双字节字符和单字节字符在屏幕上所占用的空间是不同的,通常情况下双字节字符占用的空间是单字节字符的两倍。比如,一个字符串,可能包含中文英文数字和各种符号等等,将其输出到屏幕上,需要根据长度判断在哪里进行截断(网页编程中经常用到)。
最常见的两种方式。
一种是通过String的getBytes().length来判断,单个字符构成的字符串,其getBytes().length若大于1,则为双字节字符,否则为单字节字符。不过需要注意的是,这种方式有一定缺陷,就是当使用英文操作系统来执行getBytes().length这句代码的时候,单字节双字节文本得到的结果是一样的。这是因为不同的J***A虚拟机对于字符的处理方式不同。所以,虽然这种方法很简单,而且在大多数时候很有效,但是考虑到可能会有少部分使用英文操作系统的人,还是建议用下一种方法。
另外一种是通过判断某一位的字符是否大于0x80,如果大于则为双字节字符,否则为单字节字符。
最常见的两种方式。
一种是通过String的getBytes().length来判断,单个字符构成的字符串,其getBytes().length若大于1,则为双字节字符,否则为单字节字符。不过需要注意的是,这种方式有一定缺陷,就是当使用英文操作系统来执行getBytes().length这句代码的时候,单字节双字节文本得到的结果是一样的。这是因为不同的J***A虚拟机对于字符的处理方式不同。所以,虽然这种方法很简单,而且在大多数时候很有效,但是考虑到可能会有少部分使用英文操作系统的人,还是建议用下一种方法。
另外一种是通过判断某一位的字符是否大于0x80,如果大于则为双字节字符,否则为单字节字符。
相关文章推荐
- 判断一个字符是全角还是半角(占一个字节还是两个字节)
- C#中怎样判断一个字符串中得字符是汉字还是字母
- 如何判断一个字符串中是否含有汉字或汉字标点(即双字节字符)
- 判断一个字符是否为汉字的最佳方法 字数,字符,字节统计
- 用C++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数?(不用sizeof()函数求当前主机上的一个int占用几个字节)
- 如果判断一个字符是西文字符还是中文字符
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
- java小练习:输入一个字符,判断该字符是数字?英文字母?还是其他字符
- 【学习笔记】判断输入的一个字符 是字母 还是数字 或者是空格
- JS判断一个字符是汉字还是字母
- shell case语句 判断一个字符是字母还是数字
- 判断一个字符是否是数字、还是大小写字母
- 判断一个字符是西文字符还是中文字符
- 5.8.从键盘任意输入一个字符,编程判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
- 关于GBK中的英文字符占用一个字节还是两个字节的问题
- 一、如果判断一个字符是西文字符还是中文字符
- C语言 判断一个字符是字母还是数字
- 2输入一个字符判断是否属于a-zA-Z之间如果是请是属于a-z还是A-Z并且输出值。
- 从键盘输入一个字符,判断其是字母字符,还是数字字符,还是其他字符
- 判断一个字符是Ascill字符还是其它字符(如汉,日,韩)