16位二进制前导零

问题描述

我正在使用像这样的toBinaryString转换方法
for (i=0; i<anyLines.length; i++) {

            if (anyLines[i].startsWith(\"@\")) {
                anyLines[i] = anyLines[i].replace(\"@\",\"\");
                anyLines[i] = Integer.toBinaryString((Integer.parseInt(anyLines[i])));
            }
            else {
                continue;
            }
但是,当我写入文件时,二进制文件只有2位长,尽管我想要一个16位二进制数全为零。例如,将2转换为10,尽管我希望有0000000000000010。我该怎么做?     

解决方法

只需将整个字符串加2 ^ 17和
substring
anyLines[i] = Integer.toBinaryString(131072 + (Integer.parseInt(anyLines[i]))).substring(1,17);
    ,设置二进制字符串后,只需检查字符串长度,并在字符串的前面附加足够的零,以使其长度为16个字符。