从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文乱码
来源:互联网 发布:数据分析师 挂靠 编辑:程序博客网 时间:2024/05/21 11:07
最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。
要求描述:从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文乱码,举个例子:
现有字符串:"我不道你xia我gsm是hai你shi那个地方那条街"
现在要求截取12个字节:如果直接截取12个字节就会出现中文乱码,所以按照我们的要求只能截取前11个字节,也即是:我不道你xia
如果要求截取13字节的话,就可以直接截取,最后结果为:我不道你xia我
package interview;import java.io.IOException;public class CutStringByConstantByte {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString str = "我不道你xia我gsm是hai你shi那个地方那条街";System.out.println(CutStringMethod(str.getBytes("GBK"),12)); }public static String CutStringMethod(byte[] bs,int count) {// TODO Auto-generated method stubint countNum = 0;int cutNum = 0;//汉字的2个字节的ASCII码都大于128,统计要截取的字节中汉字字节的数目for (int i = 0; i < count;i++) {if(bs[i]<0){ //判断是否为汉字countNum++;}}/*一个汉字是由两个字节组成的*/if(countNum%2==0){ //如果汉字的字节数为偶数时,则截取的字节数不变cutNum = count;}else{ //如果汉字的字节数为奇数时,则截取的字节数要少一个cutNum = count-1;}return new String(bs, 0, cutNum);}}
0 0
- 从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文乱码
- 字符串截取(按指定的字节数)汉字不可以截取半个
- 截取指定长度的字符串(汉字不出现半个)
- c#截取指定字节长度的字符串
- 截取指定长度的字符串(UTF-8专用 汉字和大写字母长度算1,其它字符长度算0.5)
- 截取指定的字符长度(其中字符串中有中文,如果有半个中文则去掉)
- 编写一个截取字符串的函数,输入一个字符串和字节数,按字节截取字符串,汉字不会出现被截取半边
- js从字符串中截取10个字节的长度
- 截取GB2312以及GBK编码的字符串,从第一个字符开始截取,2个长度代表一个汉字
- 在C#中截取指定长度的中文字符串
- 在C#中截取指定长度的中文字符串
- 在C#中截取指定长度的中文字符串
- 面试题之——对包含汉字的字符串截取指定字节数
- Python2.7如何从包含汉字和数字的字符串中截取数字
- 给定一个字符串,包含中文字符和英文字符,取给定大小字节的子串。
- 截取包含汉字的字符串
- java中获取包含中文字符的字符串长度
- java 截取一个包含汉字的字符串的前n个字节的算法
- ajax基础 GET,POST方式传值,同步异步
- Ubuntu下的文件比较工具--meld
- pip 换源小计
- 习题38 列表的操作
- 认识tomcat及其配置文件解释
- 从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文乱码
- HDU 1258 Sum It Up
- spring的一些配置问题
- Qt中的MVC (模型/视图结构)
- POJ 2481 Cows
- POJ 1873 The Fortified Forest(二进制枚举+凸包)
- nginx的权限问题(13: Permission denied) 解决办法
- 模拟器运行失败
- 【HDU 5768】Lucky7(CRT+容斥)