Java android中的二进制字符串转换

Java android中的二进制字符串转换,java,android,binary,Java,Android,Binary,我有二进制文件,比如100100100000 1110011100001 1101001100 1100100 1100110 1110101 1100011 1101011 100000 1000111 1000001 1001110 1000101 1010011 1001000我正在尝试将它们转换为字符串。有一些源代码我已经尝试过了 没有人在工作。每次我都会犯同样的错误 public static String binaryToText(String binaryString) {

我有二进制文件,比如
100100100000 1110011100001 1101001100 1100100 1100110 1110101 1100011 1101011 100000 1000111 1000001 1001110 1000101 1010011 1001000
我正在尝试将它们转换为
字符串
。有一些源代码我已经尝试过了 没有人在工作。每次我都会犯同样的错误

public static String binaryToText(String binaryString) {
    StringBuilder stringBuilder = new StringBuilder();
    int charCode;
    for (int i = 0; i < binaryString.length(); i += 8) {
        charCode = Integer.parseInt(binaryString.substring(i, i + 8), 2);
        String returnChar = Character.toString((char) charCode);
        stringBuilder.append(returnChar);
    }
    return stringBuilder.toString();
}

问题是,这些比特组的长度并不完全相同。因此,请帮自己一个忙,只需将
上的字符串拆分为
并单独处理每个位组,而不是计算步骤:

public static String binaryToText(String binaryString) {
    StringBuilder stringBuilder = new StringBuilder();
    int charCode;
    // Split the string
    String[] parts = binaryString.split(" ");
    // Consider each part on its own
    for (String part : parts) {
        charCode = Integer.parseInt(part, 2);
        String returnChar = Character.toString((char) charCode);
        stringBuilder.append(returnChar);
    }
    return stringBuilder.toString();
}

分组由7位数字组成,您一次读取8位数字(子串时)。一般来说,不要使用你不懂的代码。@FedericoklezCulloca我更改了代码<代码>for(int i=0;i
我每8到7次更改一次。但是,我现在遇到另一个错误。
java.lang.StringIndexOutOfBoundsException:length=8;regionStart=7;regionLength=7在java.lang.String.StartAndLength(String.java:504)在java.lang.String.substring(String.java:1333)在com.binary.MainActivity.binaryToText(MainActivity.java:97)
上,请重新阅读我的评论(您可能没有注意到我的编辑,这是我从一开始就不清楚的错误).再说一遍,试着理解你正在使用的代码,而不是改变随机位直到它工作。@FedericoklezCulloca噢!它不工作了。我understood@FedericoklezCulloca那么,你能说我如何解码它吗?作为旁注,由问题中的字符串生成的文本可能被一些人认为是亵渎的,所以在你自己决定吧。
public static String binaryToText(String binaryString) {
    StringBuilder stringBuilder = new StringBuilder();
    int charCode;
    // Split the string
    String[] parts = binaryString.split(" ");
    // Consider each part on its own
    for (String part : parts) {
        charCode = Integer.parseInt(part, 2);
        String returnChar = Character.toString((char) charCode);
        stringBuilder.append(returnChar);
    }
    return stringBuilder.toString();
}