Я использую этот код:Java - Преобразование ASCII в двоичный без ведущих нулей
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;
}
}
и я пытаюсь изменить его, чтобы удалить ведущие zerosfrom двоичного кода каждого символа 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
Она не хочет ведущих нулей, потому что теперь она должна удалить их, когда она использует свой метод струйной печати. –
@ brso05 Я пытаюсь удалить ведущие нули каждого символа перед добавлением их двоичных файлов вместе: 'str.append ((val & 128) == 0? 0: 1);' – SalmaFG