Строка перезаписывается последним значением другой строки

Я сохраняю данные, полученные через Bluetooth, в readDataA1/B1/A2/B2/A3 и B3, которые объявлены как String global на уровне класса. Я не знаю, почему readDataA1/B1/A2/B2/A3 и B3 в конце этой функции имеют значение последней полученной строки. В конце концов, у этой 6 переменных было то же значение. И ham1, ham2 и ham3 всегда равны нулю. Я не знаю, где его затирают.

String[] splitReadMsgA1 = readMessage.split(":");
                readDataA1 = splitReadMsgA1[0];
                if (splitReadMsgA1[1].equals("A.1")){
                    String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
                    sendMsg(list_data + ":" + "B.1");
                }
                else{
                    String[] splitReadMsgB1 = readMessage.split(":");
                    readDataB1 = splitReadMsgB1[0];
                    if (splitReadMsgB1[1].equals("B.1")){
                        String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
                        sendMsg(list_data + ":" + "A.2");
                        ham1 = HammingDistance(StringToIntArray(readDataA1), StringToIntArray(readDataB1));
                    }
                    else{
                        String[] splitReadMsgA2 = readMessage.split(":");
                        readDataA2 = splitReadMsgA2[0];
                        if (splitReadMsgA2[1].equals("A.2")){
                            String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
                            sendMsg(list_data + ":" + "B.2");
                        }
                        else{
                            String[] splitReadMsgB2 = readMessage.split(":");
                            readDataB2 = splitReadMsgB2[0];
                            if (splitReadMsgB2[1].equals("B.2")){
                                String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
                                sendMsg(list_data + ":" + "A.3");
                                ham2 = HammingDistance(StringToIntArray(readDataA2), StringToIntArray(readDataB2));
                            }
                            else{
                                String[] splitReadMsgA3 = readMessage.split(":");
                                readDataA3 = splitReadMsgA3[0];
                                if (splitReadMsgA3[1].equals("A.3")){
                                    String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
                                    sendMsg(list_data + ":" + "B.3");
                                }
                                else{
                                    String[] splitReadMsgB3 = readMessage.split(":");
                                    readDataB3 = splitReadMsgB3[0];
                                    ham3 = HammingDistance(StringToIntArray(readDataA3), StringToIntArray(readDataB3));
                                }
                            }
                        }
                    }
                }

Какое значение имеет переменная readMessage? Вы получите то же значение в переменных readDataA1 / B1 / A2 / B2 / A3 / B3, если все условия «if» вернут false.

Vinay 23.12.2018 11:36

Нет. Проблема заключалась в том, что я написал readDataAx / Bx вне if

user3628339 26.12.2018 22:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
48
0

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