В моем приложении я читаю некоторые данные из таблицы. Которая находится в строчном формате. Мне нужно разобрать эти данные в байт. Пример: Предположим, моя строка содержит 0e , чем я хочу получить 0e в качестве значения байта. здесь (byte) (Integer.parseInt("0e",16) & 0xff)
; не будет работать, поскольку он будет анализировать это значение до целого числа. Любая помощь по этому поводу будет оценена. Спасибо заранее.Как преобразовать шестнадцатеричную строку в шестнадцатеричный байт?
ответ
Даже если Integer.parseInt("0e", 16) & 0xff
производит integer
, там ничего не мешает вам добавить ролях:
byte b = (byte)(Integer.parseInt("0e",16) & 0xff);
Вы можете использовать String.Format
, чтобы убедиться, что преобразование работает должным образом:
String backToHex = String.format("%02x", b); // produces "0e"
, если вы видите мой код, я добавил, но проблема в том, что он не даст 0e в результате, который i want – Rajesh
@Rajesh, шестнадцатеричный - это просто способ представления чисел. '0e' - это то же число, что и' 14' в десятичном значении, или '00001110' в двоичном формате. Тип данных 'byte' хранится только двоично, а не' 0e' или '14' или любое другое числовое представление. Я предполагаю, что вы ожидаете, что он отобразит '0e', когда вы попытаетесь распечатать его, но это потребует от вас дополнительного форматирования. – jonhopkins
@Rajesh Это отлично работает на ideone ([link] (http://ideone.com/NYQOq8)). – dasblinkenlight
Вы можете разобрать байт по следующему коду:
byte b = Byte.parseByte("0e", 16)
Попытка:
byte b = Byte.parseByte("0e", 16);
Это преобразует вашу строку в список байтов.
public static List<Byte> parseStringBytes(String str)
{
if (str.length() % 2 == 1)
str = "0" + str; // otherwise 010 will parse as [1, 0] instead of [0, 1]
// Split string by every second character
String[] strBytes = str.split("(?<=\\G.{2})");
List<Byte> bytes = new ArrayList<>(strBytes.length);
for (String s : strBytes) {
bytes.add(Byte.parseByte(s, 16));
}
return bytes;
}
вызовов следующим образом:
System.out.println(parseStringBytes("05317B13"));
// >>> [5, 49, 123, 19]
спасибо за помощь – Rajesh
- 1. Javascript: преобразовать шестнадцатеричную кодированную строку в шестнадцатеричный байт
- 2. Как преобразовать шестнадцатеричную строку в шестнадцатеричный номер?
- 3. Как преобразовать шестнадцатеричную строку в шестнадцатеричный номер
- 4. Как преобразовать шестнадцатеричную строку в байт и байт в шестнадцатеричную строку в Javascript?
- 5. C# Преобразовать шестнадцатеричную строку в байт
- 6. Как преобразовать шестнадцатеричную строку в байт-массив?
- 7. В Java, как преобразовать шестнадцатеричную строку в байт []?
- 8. Преобразовать шестнадцатеричную строку в байты []
- 9. Как преобразовать строку в шестнадцатеричный?
- 10. Как правильно преобразовать шестнадцатеричную строку в байт-массив в C?
- 11. Как преобразовать байт в шестнадцатеричную строку в Java
- 12. Как преобразовать Int в шестнадцатеричную строку?
- 13. Преобразовать строку в шестнадцатеричную
- 14. Как преобразовать шестнадцатеричный в массиве байт в C
- 15. Как преобразовать строку в шестнадцатеричную?
- 16. преобразовать строку в шестнадцатеричную строку
- 17. Как преобразовать шестнадцатеричную строку NSData в стандартную шестнадцатеричную строку?
- 18. Преобразовать шестнадцатеричную строку в номер в mySQL
- 19. преобразовать строку в шестнадцатеричный
- 20. Как преобразовать текстовую строку в шестнадцатеричную строку?
- 21. Как преобразовать строку в шестнадцатеричный?
- 22. преобразовать шестнадцатеричную строку в NSData
- 23. Как преобразовать строку base64 в шестнадцатеричную строку в C++?
- 24. C# bitconverter.ToString преобразовать в шестнадцатеричную строку
- 25. Преобразовать шестнадцатеричную строку в int
- 26. C# - Байт-массив в шестнадцатеричную строку
- 27. Как преобразовать правильную строку в шестнадцатеричную строку ASCII в C#?
- 28. Как преобразовать шестнадцатеричную строку в массив байтов?
- 29. Как преобразовать шестнадцатеричную строку в Uint8
- 30. Как преобразовать шестнадцатеричную строку в целое число?
Является ли строка всегда один байт (двух символов)? Или вам нужно создать массив байтов? – azz
Да, я создам arraylist из байтов, который позже будет частью. Но сначала я хочу получить то же значение, то есть 0e из строки. Если строковое значение равно 0A, то я хочу, чтобы значение байта 0A – Rajesh