Как преобразовать шестнадцатеричные данные (хранящиеся в строковой переменной) в целочисленное значение

ArrayIndexOutOfBoundsException означает, что вы пытаетесь получить доступ к индексу массива, который не существует или не связан с границей этого массива. Индексы массива начинаются с 0 и заканчиваются на длину - 1.

В вашем случае

for(int i = 0; i<=name.length; i++) {
    System.out.print(name[i] +'\n'); // i goes from 0 to length, Not correct
}

ArrayIndexOutOfBoundsException происходит, когда вы пытаетесь получить доступ к элементу index.length, который делает не существует (индекс массива заканчивается на -1). просто заменяя & lt; = с & lt; решит эту проблему.

for(int i = 0; i < name.length; i++) {
    System.out.print(name[i] +'\n');  // i goes from 0 to length - 1, Correct
}
-2
задан tionichm 17 January 2019 в 16:22
поделиться

1 ответ

Следуя совету Дэвида Хеффернана, я пошел и пересмотрел свои типы данных. Попытка собрать двоичные данные из символов не работает, потому что не все значения от 0 до 255 могут быть правильно представлены. Вы теряете данные по пути, в основном. Тем более что ваши данные представлены 4 байтами за раз.

Решением для меня было использование компонента Async Professional вместо библиотеки Denjan Comport lib. Он лучше обрабатывает потоки данных и имеет встроенный журнал, который я мог бы использовать, чтобы выяснить, как интерпретировать потоковые данные с инструмента. Это также лучше задокументировано. Итак, если вы новичок в последовательной связи (как и я), лучше попробуйте.

0
ответ дан tionichm 17 January 2019 в 16:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: