У меня есть массив байтов, из которого я конвертирую в строку, подобную этой:
ScanRecord scanRecord = result.getScanRecord();
assert scanRecord != null;
byte[] manufacturerData = scanRecord.getManufacturerSpecificData(0x0590);
String puck_data = Arrays.toString(manufacturerData);
Я получаю 2 значения в своей строке puck_data и хочу получить первое и второе значения моего массива. Как я могу это сделать?
не могли бы вы дать мне код для этого? заранее спасибо!
Это печатные символы?
да вроде: [23, 26] если вы имеете в виду это ..
23 и 26 не являются печатными символами, проверьте таблицу ascii. Что должно быть на выходе для этих значений?
это два моих желаемых значения .. так что я думаю, все в порядке .. спасибо Хуан
Поскольку пример, который вы указали в комментариях, не является печатаемым символом, я думаю, вам нужен способ распечатать, как выглядит массив.
Этот пример покажет вам, как содержимое массива преобразует байтовые значения в их десятичную интерпретацию и даст основу для:
-Доступ к байтам в массиве.
-Как преобразовать двоичное значение в десятичное строковое представление без знака.
-Как использовать 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);
ManufacturerData [0] и ManufacturerData [1] будут иметь первый и второй байт. Чтобы превратить это в String, если они являются печатными символами, вы можете преобразовать их в char и, например, добавить их в StringBuilder.