В настоящее время у меня есть строка со значением «0100100001101001» (это двоичное для слова «Привет»).Я пытаюсь понять, как взять эту строку и преобразовать ее обратно в слово «Привет»
Я использовал
String s = "Hi"; byte[] bytes = s.getBytes(); StringBuilder binary = new StringBuilder(); for (byte b : bytes) { int val = b; for (int i = 0; i < 8; i++) { binary.append((val & 128) == 0 ? 0 : 1); val <<= 1; } } s = binary.toString();
, найденный на: Преобразовать строку (например,testing123) Для двоичного кода в Java
Любая помощь будет принята с благодарностью.Заранее спасибо.
Что-то вроде ..
BigInteger val = new BigInteger("0100100001101001", 2); String hi = new String(val.toByteArray());
Другое решение для разнообразия. Использует (char) кастинг. Возьмите s, чтобы быть двоичным String:
(char)
s
String
String result = ""; for (int i = 0; i < s.length(); i += 8) { result += (char) Integer.parseInt(s.substring(i, i + 8), 2); }