java按字节拆分字符串 后在拼成字符串
是这样的一个方法
按字节拆分后等字节的放到String数组中。另外有个方法接收String数组后在拼成content原来的值。现在是如果有中文,按字节拆分会有乱码。但是感觉后面按照String数组拼成字符串应该不会乱码。但是还是乱码。请问怎么做才能在用返回的String数组拼成字符串不乱码。
public static void main(String[] args) throws UnsupportedEncodingException {
String arr[] = splitByByteSize("abc刘defghijklmnopqrstuvwxyz",4);
int byteLen = 0;
for(int i=0;i<arr.length;i++){
byteLen+=arr[i].getBytes().length;
}
byte[] bytes = new byte[byteLen];
int offset = 0;
for(int i=0;i<arr.length;i++){
System.arraycopy(arr[i].getBytes("utf-8"), 0, bytes, offset, arr[i].getBytes("utf-8").length);
offset += arr[i].getBytes("utf-8").length;
}
System.out.println(">>"+new String(bytes));
}
public static String[] splitByByteSize(String content, int size) throws UnsupportedEncodingException{
byte[] bytes = content.getBytes("utf-8");
int totalSize = bytes.length;
int partNum = 0;
if(totalSize == 0){
return new String[0];
}
if(totalSize % size == 0){
partNum = totalSize / size;
}else{
partNum = totalSize / size + 1;
}
String[] arr = new String[partNum];
int offset = 0;
byte newBytes[] = new byte[size];
for(int i=0;i<partNum-1;i++){
System.arraycopy(bytes, offset, newBytes, 0, size);
arr[i] = new String(newBytes,"utf-8");
offset += size;
}
System.arraycopy(bytes, offset, newBytes, 0, totalSize-offset);
arr[partNum-1] = new String(newBytes,"utf-8");
return arr;
}按字节拆分后等字节的放到String数组中。另外有个方法接收String数组后在拼成content原来的值。现在是如果有中文,按字节拆分会有乱码。但是感觉后面按照String数组拼成字符串应该不会乱码。但是还是乱码。请问怎么做才能在用返回的String数组拼成字符串不乱码。
...全文
相关推荐
JAVA如何按字节截取字符串
主要介绍了JAVA如何按字节截取字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
用string拆分字符串
用string拆分字符串 用string拆分字符串 用string拆分字符串
java 中用split分割字符串,最后的空格等不被拆分的方法
下面小编就为大家带来一篇java 中用split分割字符串,最后的空格等不被拆分的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java按字节截取带有汉字的字符串的解法(推荐)
下面小编就为大家带来一篇java按字节截取带有汉字的字符串的解法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java实现大文本文件拆分
主要为大家详细介绍了java实现大文本文件拆分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


Java SE
