我想将字符串的每个字符转换为新的二进制字符串。这是我的工作:

public static void main(String args[]) {
    String MESSAGE = "%";
    String binaryResult = "";
    for (char c : MESSAGE.toCharArray()){
        binaryResult += Integer.toBinaryString( (int) c);
    }
    System.err.println(binaryResult);
}


以输入“%”为例,我得到以下输出:“ 100101”
我的问题是开头的“ 0”被删除了...
我想要:“ 0100101”。有人有想法吗?

最佳答案

您真正要说的是“如何将字符的二进制字符串表示形式填充到7位”?

替换此行:

binaryResult += Integer.toBinaryString( (int) c);


用这些:

String binString = Integer.toBinaryString( (int) c );
binaryResult += ("0000000" + binString).substring(binString.length());


这假定您只有7位字符...如果需要更多字符,则在“ 00000”字符串中添加0以匹配所需的字符串长度(填充0)。

07-25 22:27