【发布时间】:2015-08-05 20:38:31
【问题描述】:
我正在使用此代码:
byte[] bytes = MESSAGE.getBytes();
StringBuilder str = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
str.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
}
我正在尝试对其进行修改,以在每个 ASCII 字符的二进制代码附加到二进制 StringBuilder str 之前删除前导零。但问题是前导零的数量是未知的,我只能通过在第一个块之后添加以下内容从整个二进制块中删除它们:
String MSG = "";
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) == '0')
MSG = (str.toString()).substring(i+1,str.length());
else
break;
}
有什么想法吗?
【问题讨论】:
-
你想做什么?
-
她不想要前导零,因为现在她在使用字符串打印方法时必须删除它们。
-
@brso05 我正在尝试删除每个字符的前导零,然后将它们的二进制文件附加到此处:
str.append((val & 128) == 0 ? 0 : 1);