Как получить первый и второй элемент байтового массива

У меня есть массив байтов, из которого я конвертирую в строку, подобную этой:

ScanRecord scanRecord = result.getScanRecord();
            assert scanRecord != null;
            byte[] manufacturerData = scanRecord.getManufacturerSpecificData(0x0590);
            String puck_data = Arrays.toString(manufacturerData);

Я получаю 2 значения в своей строке puck_data и хочу получить первое и второе значения моего массива. Как я могу это сделать?

ManufacturerData [0] и ManufacturerData [1] будут иметь первый и второй байт. Чтобы превратить это в String, если они являются печатными символами, вы можете преобразовать их в char и, например, добавить их в StringBuilder.

Juan 14.04.2018 19:30

не могли бы вы дать мне код для этого? заранее спасибо!

diamond 14.04.2018 19:34

Это печатные символы?

Juan 14.04.2018 19:35

да вроде: [23, 26] если вы имеете в виду это ..

diamond 14.04.2018 19:36

23 и 26 не являются печатными символами, проверьте таблицу ascii. Что должно быть на выходе для этих значений?

Juan 14.04.2018 19:46

это два моих желаемых значения .. так что я думаю, все в порядке .. спасибо Хуан

diamond 14.04.2018 19:48
0
6
1 419
1

Ответы 1

Поскольку пример, который вы указали в комментариях, не является печатаемым символом, я думаю, вам нужен способ распечатать, как выглядит массив.

Этот пример покажет вам, как содержимое массива преобразует байтовые значения в их десятичную интерпретацию и даст основу для:

-Доступ к байтам в массиве.
-Как преобразовать двоичное значение в десятичное строковое представление без знака. -Как использовать StringBuilder.

        byte[] manufacturerData = new byte [] {(byte) 254,26};
        byte byte1 = manufacturerData[0];
        byte byte2 = manufacturerData[1];
        StringBuilder sb = new StringBuilder();
        sb.append("[")
        .append((int) (0x00FF & byte1))
        .append(",")
        .append((int)  (0x00FF & byte2))
        .append("]");

        String puck_data = sb.toString();
        System.out.println(puck_data);

Другие вопросы по теме