Я пытаюсь протестировать аудио-визуализатор Arduino, но когда я запускаю визуализатор Java 9 раз из 10, я получаю ArrayIndexOutOfBoundsException, а в других случаях он работает отлично.ArrayIndexOutOfBoundsException: число изменяется каждый раз между 0 и 32.
Я рассматривал включение второго оператора catch для ArrayIndexOutOfBoundsException, но мне казалось, что наложить повязку на более серьезную проблему.
void draw()
{
String tempC = myPort.readStringUntil('\n');
if (tempC != null)
{
String[] items = tempC.replaceAll("\\[", "").replaceAll("\\]",
"").replaceAll("\\s", "").split(",");
int[] data = new int[32];
for (int i = 0; i < 32; i++)
{
try {
data[i] = Integer.parseInt(items[i]);
}
catch (NumberFormatException nfe) {};
}
background(123);
rect (20,300,10,-(data[0]));
rect (40,300,10,-(data[1]));
rect (60,300,10,-(data[2]));
ЭтоКод должен принимать строку (которая всегда будет содержать 32 числа) из последовательного порта, который выглядит следующим образом: 160,0,0,0,0,0,0,10,0,10,0,10,0,0, 0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,10,10 и превратить эту строку в массив, называемый данными размера 32 (data[32]) где каждый элемент в массиве - это одно из чисел, разделенных знаком «,».Затем код создаст прямоугольники высотой, равной величине данных.Когда я запускаю этот код, я получаю сообщение об ошибке ArrayIndexOutOfBoundsException: и затем некоторое число в пределах 0 - 32. Любая помощь очень ценится.