二进制字符串转换回中文
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("[10]{8}");
// 定义匹配器,与源字符串关连上
Matcher m = p.matcher(SOURCE);
// 安放匹配结果
List<Byte> list = new ArrayList<Byte>();
// 开始搜寻pattern
// 先将8位的字符串按2进制扫描为Integer
// 由于后面的须求数字再强制转成byte
// 存入list中
while (m.find()) {
list.add((byte) Integer.parseInt(m.group(), 2));
}
// 准备将list转为byte数组
// 由于String构造器参数类型的限制
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));
}
}