Как получить размер строки в 64 бита (не байтах) в порядке обратного порядка байтов)? Я никогда не делал подобных операций на Java. Спасибо за любую помощь :).
Как получить размер в битах Java
Ответы (3)
Внутри Java всегда используется порядок BigEndian, даже если платформа, такая как x86, использует LittleEndian.
В Java 64-битные значения хранятся в типе данных long
.
Теперь последний вопрос - что вы хотите измерить. В строке вы можете подсчитать количество символов или количество байтов, которые строка принимает при кодировании с использованием указанной кодировки (например, UTF-8, UTF-16, ISO-8859-1, ...).
Предполагая, что вы хотите подсчитать количество символов в строке и получить число как 64-битное число, вы можете использовать следующий код:
String myString = "abcdefgh";
long charCount = myString.length;
Если вы хотите записать charCount
в файл или в сетевое соединение, вы можете использовать DataOutputStream для получения представления BigEndian:
DataOutputStream out = new DataOutputStream(streamToWriteTo);
out.writeLong(charCount);
Я думаю, вы этого хотите:
String source = "0123456789";
byte[] byteArray = source.getBytes("UTF-16BE");
int sizeInBits = byteArray.length * 8;
Источник: Почему byteArray имеет длину 22 вместо 20?
А? Строки могут быть измерены только в символах или байтах, и это только после того, как вы укажете конкретную кодировку для кодировки.
Для последнего это просто string.getBytes(charset).length
.
Это могло бы помочь, если бы мы знали, что вы на самом деле пытаетесь сделать.