【发布时间】:2011-07-29 00:05:47
【问题描述】:
我想通过将字符串放入字节数组 (String.getBytes[]) 将字符串转换为二进制,然后将每个字节的二进制字符串 (Integer.toBinaryString(bytearray)) 存储在字符串 [] 中。然后我想通过Byte.parseByte(stringarray[i], 2) 转换回普通字符串。这适用于标准 ASCII 表,但不适用于扩展表。例如,A 给了我1000001,但Ä 返回了
11111111111111111111111111000011
11111111111111111111111110000100
任何想法如何管理这个?
public class BinString {
public static void main(String args[]) {
String s = "ä";
System.out.println(binToString(stringToBin(s)));
}
public static String[] stringToBin(String s) {
System.out.println("Converting: " + s);
byte[] b = s.getBytes();
String[] sa = new String[s.getBytes().length];
for (int i = 0; i < b.length; i++) {
sa[i] = Integer.toBinaryString(b[i] & 0xFF);
}
return sa;
}
public static String binToString(String[] strar) {
byte[] bar = new byte[strar.length];
for (int i = 0; i < strar.length; i++) {
bar[i] = Byte.parseByte(strar[i], 2);
System.out.println(Byte.parseByte(strar[i], 2));
}
String s = new String(bar);
return s;
}
}
【问题讨论】: