java按字节拆分字符串 后在拼成字符串

Luger Luger 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
是这样的一个方法
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数组拼成字符串不乱码。
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
Luger
Java SE 62,620 成员 307,251 内容