二进制字符串转换回中文

如题所述

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BinaryToString {
// 待转换的字符串
public static final String SOURCE = "110011101101001011000011110001111010001110101100110010101100011110111001110110101011111011111100";
public static void main(String[] args) {
// 定义正则表达式
// 匹配所有由1或0组成的8位字符
Pattern p = Pattern.compile("[01]{8}");
// 定义匹配器,与源字符串关联
Matcher m = p.matcher(SOURCE);
// 存放匹配结果
List list = new ArrayList();
// 开始搜索pattern
while (m.find()) {
list.add((byte) Integer.parseInt(m.group(), 2));
}
// 准备将list转换为byte数组
byte[] b = new byte[list.size()];
// 开始转换
for (int j = 0; j < b.length; j++) {
b[j] = list.remove(0);
}
// 将字节数组转换为String输出
// 故意不指定字符集(GBK),让编绎器按系统默认打印
System.out.println(new String(b));
}
}
温馨提示:答案为网友推荐,仅供参考